I'm working on improving the search response of ES but not able to do
anything. My scenario is something like this:
I'm using 3 ES queries to get relevant results for my autocompleter.
A function score query with a match query ( To get a correct match if
user typed query is available in documents based on popularity)
A multi match query (To handle those scenarios in which a user types
some text which is present in different fields in a document since my
documents are multi fields like name, address, city, state, country )
A query string (In order to ensure if I missed user query by the above
type I'll be able to search using more powerful but less accurate query
string)
Along with all the 3 queries, I'm using 4 filters (clubbed using AND
filter).
My performance is really bad and I want to improve it along with delivering
relevat results in my autocompleter.
Can anyone help me how can I improve this ? Any way I can club the queries
for better performance ?
I have read that I BOOL filters should be used instead of AND filter since
they use bitset which are cached internally. I think this makes one
improvement because if in the first query ES stores the information of
filters in bitset, it can reuse it in other two queries. That will make the
thigs a little fast but based on queries, I'm not able to do any
improvement ?
Is there any way by which I can combine match and multi-match queries ( 1
and 2) into a single effective query.
Also, in place of query_string should I use some other query for faster
execution.
I'm working on improving the search response of ES but not able to do
anything. My scenario is something like this:
I'm using 3 ES queries to get relevant results for my autocompleter.
A function score query with a match query ( To get a correct match if
user typed query is available in documents based on popularity)
A multi match query (To handle those scenarios in which a user types
some text which is present in different fields in a document since my
documents are multi fields like name, address, city, state, country )
A query string (In order to ensure if I missed user query by the above
type I'll be able to search using more powerful but less accurate query
string)
Along with all the 3 queries, I'm using 4 filters (clubbed using AND
filter).
My performance is really bad and I want to improve it along with
delivering relevat results in my autocompleter.
Can anyone help me how can I improve this ? Any way I can club the queries
for better performance ?
I have read that I BOOL filters should be used instead of AND filter since
they use bitset which are cached internally. I think this makes one
improvement because if in the first query ES stores the information of
filters in bitset, it can reuse it in other two queries. That will make the
thigs a little fast but based on queries, I'm not able to do any
improvement ?
Is there any way by which I can combine match and multi-match queries ( 1
and 2) into a single effective query.
Also, in place of query_string should I use some other query for faster
execution.
I have seen these links. I'm using ngram tokenizer. Issue which I'm facing
is slow response time. For that I need some suggestions, how can I improve
it ? Is there anyway by which I can query in a better way ? Also, I'm using
a match query in a field in one of my filters but I have read that term
filters are more effective. Can you give me some insight how can I use term
filter in this case even if the field on which I want to apply the filter
is not present in all the documents.
Thanks
On Saturday, 12 July 2014 00:09:50 UTC+5:30, Jörg Prante wrote:
For autocompletion, you should use the completion suggester
On Fri, Jul 11, 2014 at 8:11 PM, coder <mukul...@gmail.com <javascript:>>
wrote:
Hi,
I'm working on improving the search response of ES but not able to do
anything. My scenario is something like this:
I'm using 3 ES queries to get relevant results for my autocompleter.
A function score query with a match query ( To get a correct match if
user typed query is available in documents based on popularity)
A multi match query (To handle those scenarios in which a user types
some text which is present in different fields in a document since my
documents are multi fields like name, address, city, state, country )
A query string (In order to ensure if I missed user query by the above
type I'll be able to search using more powerful but less accurate query
string)
Along with all the 3 queries, I'm using 4 filters (clubbed using AND
filter).
My performance is really bad and I want to improve it along with
delivering relevat results in my autocompleter.
Can anyone help me how can I improve this ? Any way I can club the
queries for better performance ?
I have read that I BOOL filters should be used instead of AND filter
since they use bitset which are cached internally. I think this makes one
improvement because if in the first query ES stores the information of
filters in bitset, it can reuse it in other two queries. That will make the
thigs a little fast but based on queries, I'm not able to do any
improvement ?
Is there any way by which I can combine match and multi-match queries ( 1
and 2) into a single effective query.
Also, in place of query_string should I use some other query for faster
execution.
Can you elaborate on how you're measuring and comparing these response
times and why you feel they are slow?
It might also help if you can put a sample query and document into
a gist/pastebin
Also, is your cluster under load when you run these queries? What metrics
are you gathering around that side?
I have seen these links. I'm using ngram tokenizer. Issue which I'm facing
is slow response time. For that I need some suggestions, how can I improve
it ? Is there anyway by which I can query in a better way ? Also, I'm using
a match query in a field in one of my filters but I have read that term
filters are more effective. Can you give me some insight how can I use term
filter in this case even if the field on which I want to apply the filter
is not present in all the documents.
Thanks
On Saturday, 12 July 2014 00:09:50 UTC+5:30, Jörg Prante wrote:
For autocompletion, you should use the completion suggester
I'm working on improving the search response of ES but not able to do
anything. My scenario is something like this:
I'm using 3 ES queries to get relevant results for my autocompleter.
A function score query with a match query ( To get a correct match
if user typed query is available in documents based on popularity)
A multi match query (To handle those scenarios in which a user types
some text which is present in different fields in a document since my
documents are multi fields like name, address, city, state, country )
A query string (In order to ensure if I missed user query by the
above type I'll be able to search using more powerful but less accurate
query string)
Along with all the 3 queries, I'm using 4 filters (clubbed using AND
filter).
My performance is really bad and I want to improve it along with
delivering relevat results in my autocompleter.
Can anyone help me how can I improve this ? Any way I can club the
queries for better performance ?
I have read that I BOOL filters should be used instead of AND filter
since they use bitset which are cached internally. I think this makes one
improvement because if in the first query ES stores the information of
filters in bitset, it can reuse it in other two queries. That will make the
thigs a little fast but based on queries, I'm not able to do any
improvement ?
Is there any way by which I can combine match and multi-match queries (
1 and 2) into a single effective query.
Also, in place of query_string should I use some other query for faster
execution.
Any suggestions are welcome.
Thanks
--
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.
Apache, Apache Lucene, Apache Hadoop, Hadoop, HDFS and the yellow elephant
logo are trademarks of the
Apache Software Foundation
in the United States and/or other countries.