Re: Plain filter and constant_score

2013-12-31 Thread Han JU
Thanks Matt.
It seems that we've done terrible things ... effectively `post_filter` is a 
better name. 

在 2013年12月31日星期二UTC+1上午12时16分43秒,Matt Weber写道:

 The outer filter is basically a post filter, ie. filtering happens after 
 all the documents have been collected via the query.  This should not 
 really be used unless you are trying to do something like multi-select 
 faceting where you don't want facet counts to be affected by the filter. 
  You should be using a filtered query [1] or as you discovered a constant 
 score query if you only want to execute a filter.

 BTW, in elasticsearch 1.0, this outer filter has been renamed to 
 post_filter to avoid some of the confusion.

 Thanks,
 Matt Weber



 On Mon, Dec 30, 2013 at 2:53 PM, Han JU ju.han...@gmail.com javascript:
  wrote:

 Hi,

 We are currently benchmarking our ES setup so I've got some new questions:

 1. We found out that, for the same query (filter actually), when put like 
 this:

 {
   filter: {...},
   fields: [...]
 }

 is consistently slower than this form:

 {
   query: {
  constant_score: {
  filter: {...},
  ...
   }
   }
 }.

 All filter and fields part are identical, but the performance is 
 different, especially when caches are warm, filters wrapped in a 
 constant_score are nearly 10x faster than when they are put directly. 
 So what happens behind this? How ElasticSearch interpret filters that are 
 put directly (not wrapped in any outer structure)?

 Thanks in advance.

 -- 
 You received this message because you are subscribed to the Google Groups 
 elasticsearch group.
 To unsubscribe from this group and stop receiving emails from it, send an 
 email to elasticsearc...@googlegroups.com javascript:.
 To view this discussion on the web visit 
 https://groups.google.com/d/msgid/elasticsearch/ad91095f-7e7b-4def-8570-73dbccaa7cb2%40googlegroups.com
 .
 For more options, visit https://groups.google.com/groups/opt_out.




-- 
You received this message because you are subscribed to the Google Groups 
elasticsearch group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to elasticsearch+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/elasticsearch/050b2a38-4393-4fa5-a036-41fd29a797c9%40googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.


Plain filter and constant_score

2013-12-30 Thread Han JU
Hi,

We are currently benchmarking our ES setup so I've got some new questions:

1. We found out that, for the same query (filter actually), when put like 
this:

{
  filter: {...},
  fields: [...]
}

is consistently slower than this form:

{
  query: {
 constant_score: {
 filter: {...},
 ...
  }
  }
}.

All filter and fields part are identical, but the performance is different, 
especially when caches are warm, filters wrapped in a constant_score are 
nearly 10x faster than when they are put directly. 
So what happens behind this? How ElasticSearch interpret filters that are 
put directly (not wrapped in any outer structure)?

Thanks in advance.

-- 
You received this message because you are subscribed to the Google Groups 
elasticsearch group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to elasticsearch+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/elasticsearch/ad91095f-7e7b-4def-8570-73dbccaa7cb2%40googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.


Re: Plain filter and constant_score

2013-12-30 Thread Matt Weber
The outer filter is basically a post filter, ie. filtering happens after
all the documents have been collected via the query.  This should not
really be used unless you are trying to do something like multi-select
faceting where you don't want facet counts to be affected by the filter.
 You should be using a filtered query [1] or as you discovered a constant
score query if you only want to execute a filter.

BTW, in elasticsearch 1.0, this outer filter has been renamed to
post_filter to avoid some of the confusion.

Thanks,
Matt Weber



On Mon, Dec 30, 2013 at 2:53 PM, Han JU ju.han.fe...@gmail.com wrote:

 Hi,

 We are currently benchmarking our ES setup so I've got some new questions:

 1. We found out that, for the same query (filter actually), when put like
 this:

 {
   filter: {...},
   fields: [...]
 }

 is consistently slower than this form:

 {
   query: {
  constant_score: {
  filter: {...},
  ...
   }
   }
 }.

 All filter and fields part are identical, but the performance is
 different, especially when caches are warm, filters wrapped in a
 constant_score are nearly 10x faster than when they are put directly.
 So what happens behind this? How ElasticSearch interpret filters that are
 put directly (not wrapped in any outer structure)?

 Thanks in advance.

 --
 You received this message because you are subscribed to the Google Groups
 elasticsearch group.
 To unsubscribe from this group and stop receiving emails from it, send an
 email to elasticsearch+unsubscr...@googlegroups.com.
 To view this discussion on the web visit
 https://groups.google.com/d/msgid/elasticsearch/ad91095f-7e7b-4def-8570-73dbccaa7cb2%40googlegroups.com
 .
 For more options, visit https://groups.google.com/groups/opt_out.


-- 
You received this message because you are subscribed to the Google Groups 
elasticsearch group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to elasticsearch+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/elasticsearch/CAJ3KEoBhOub8U5zc_DzsecE4LrsxF40PUBaDCvnwX%3DWrO4f50w%40mail.gmail.com.
For more options, visit https://groups.google.com/groups/opt_out.