Using ES as a DB, no scoring, are there things to turn off?


(Andy Wick) #1

Something I've wondered about for a while for those of us using ES as a
"searchable DB" are there things we should turn off?

For example for any search query I never "boost" anything, always include a
sort clause, and never use score results.

I'm happy with the current results, but always trying to become more
efficient I'm curious if there are things that I should disable related to
scoring/boosting (or other non "DB" things) in my mappings/settings?
What about omit_norms, should I turn that on since it seems score related?

Thanks,
Andy

--


(Ivan Brusic) #2

By default, if you are sorting, then scoring is not computed (unless
you enable track_scores). Running your query as a filter with a
match_all query should accomplish the same goal with the additional
benefit of being cacheable. Constant score query seems analogous, but
I have never used it.

Since you never use boost, you should omit norms on your fields. Norms
are recorded into the index, so not only do they increase your index
size, but will also use up memory once they are loaded.

Cheers,

Ivan

On Wed, Sep 19, 2012 at 6:12 AM, Andy Wick andywick@gmail.com wrote:

Something I've wondered about for a while for those of us using ES as a
"searchable DB" are there things we should turn off?

For example for any search query I never "boost" anything, always include a
sort clause, and never use score results.

I'm happy with the current results, but always trying to become more
efficient I'm curious if there are things that I should disable related to
scoring/boosting (or other non "DB" things) in my mappings/settings?
What about omit_norms, should I turn that on since it seems score related?

Thanks,
Andy

--

--


(Clinton Gormley) #3

On Wed, 2012-09-19 at 09:49 -0700, Ivan Brusic wrote:

By default, if you are sorting, then scoring is not computed (unless
you enable track_scores). Running your query as a filter with a
match_all query should accomplish the same goal with the additional
benefit of being cacheable. Constant score query seems analogous, but
I have never used it.

Since you never use boost, you should omit norms on your fields. Norms
are recorded into the index, so not only do they increase your index
size, but will also use up memory once they are loaded.

Also disable the _all field.

clint

--


(system) #4