I think the issue here is that the 'id' field is analyzed and your UUIDS are broken up into separate tokens. The standard analyzer is responsible for breaking up by '-'. If you use the analyze api you can see what happens with your uuids: curl -XGET 'localhost:9200/_analyze?text=1aa808dc-48f0-4de3-8978-a0293d54b852 6b256fd1-cd04-4e3c-8f38-aaa87ac2220d 1234fd1a-cd04-4e3c-8f38-aaa87142380d&tokenizer=standard'
The 'id' field in ES is not used as the id field. In ES the _id field is used to store the unique identifier and that field is not analyzed. Assuming that the 'id' field has the same value as the id of a document then you can use the `ids` query instead in your percolator queries: http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/query-dsl-ids-query.html#query-dsl-ids-query Martijn On 9 May 2014 09:20, JGL <[email protected]> wrote: > Can anybody help plz? > > > On Wednesday, May 7, 2014 6:29:35 PM UTC+12, JGL wrote: >> >> Can anybody help plz? >> >> On Tuesday, May 6, 2014 11:53:32 AM UTC+12, JGL wrote: >>> >>> >>> Can anybody help plz? >>> >>> On Monday, May 5, 2014 10:24:09 AM UTC+12, JGL wrote: >>>> >>>> >>>> Hi Martjin, >>>> >>>> The percolator query in the 1st post above is what we registered to the >>>> percolator and kinda working, which consolidate all IDs in one query string >>>> for a match query, which seems not quite a elegant solution to us. >>>> >>>> { >>>> "_index" : "my_idx", >>>> "_type" : ".percolator", >>>> "_id" : "my_query_id", >>>> "_score" : 1.0, >>>> "_source" : { >>>> "query":{ >>>> "match":{ >>>> "id":{ >>>> "query":"id1 id2 id3", >>>> >>>> "type":"boolean" >>>> } >>>> } >>>> } >>>> } >>>> } >>>> >>>> >>>> Another issue is that the above solution is not quite accurate when the >>>> IDs are UUIDs. For example, if the query we register is as the following >>>> >>>> { >>>> "_index" : "my_idx", >>>> "_type" : ".percolator", >>>> "_id" : "my_query_id", >>>> "_score" : 1.0, >>>> "_source" : { >>>> "query":{ >>>> "match":{ >>>> "id":{ >>>> >>>> "query":"1aa808dc-48f0-4de3-8978-*a0293d54b852* >>>> 6b256fd1-cd04-4e3c-8f38-aaa87ac2220d 1234fd1a-cd04-4e3c-8f38-aaa87142380d", >>>> >>>> "type":"boolean" >>>> } >>>> } >>>> } >>>> } >>>> } >>>> >>>> >>>> , the percolator return the above query as a match if the document we >>>> try to percolate is "{"doc" : {"id":"1aa808dc-48f0-4de3-8978- >>>> *00293d54b852*"}}", though we are expecting a no match response here >>>> as the id in the document does not have a matched ID in the query String. >>>> >>>> Such false positive response, according to the experimentations we had, >>>> happens when the doc UUID is almost the same to one of the IDs in the query >>>> except the the last part of ID. Wondering if there is an explanation for >>>> such behavior of elasticsearch? >>>> >>>> Our another question is if there is any way we could put the UUID list >>>> as a list into a query that is working with the percolator, like what we >>>> can do for inQuery or inFilter. We tried register an inQuery or a query >>>> wrapping an inFilter. Non of them can work with the percolator, seems the >>>> percolator only works with the MatchQuery, in which we cannot put the UUID >>>> list as a list. >>>> >>>> For example the following two queries we tried are not working with >>>> percolator: >>>> >>>> { >>>> "_index" : "my_idx", >>>> "_type" : ".percolator", >>>> "_id" : "inQuery", >>>> "_score" : 1.0, "_source" : >>>> {"query":{"terms":{"id":["1aa808dc-48f0-4de3-8978-a0293d54b852","6b256fd1-cd04-4e3c-8f38-aaa87ac2220d"]}}} >>>> }, >>>> >>>> >>>> { >>>> "_index" : "my_idx", >>>> "_type" : ".percolator", >>>> "_id" : "inFilterQ", >>>> "_score" : 1.0, "_source" : >>>> {"query":{"filtered":{"query":{"match_all":{}},"filter":{"terms":{"id":["1aa808dc-48f0-4de3-8978-a0293d50b852","6b256fd1-cd04-4e3c-8f38-aaa87ac2220d"]}}}}} >>>> }, >>>> >>>> Thanks for your help! >>>> >>>> Jason >>>> >>>> >>>> On Friday, May 2, 2014 7:34:47 PM UTC+12, Martijn v Groningen wrote: >>>>> >>>>> Hi, >>>>> >>>>> Can you share the stored percolator queries and the percolate request >>>>> that you were initially trying with, but didn't work?\ >>>>> >>>>> Martijn >>>>> >>>>> >>>>> On 2 May 2014 11:14, JGL <[email protected]> wrote: >>>>> >>>>>> Can anybody help plz? >>>>>> >>>>>> -- >>>>>> 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 [email protected]. >>>>>> To view this discussion on the web visit https://groups.google.com/d/ >>>>>> msgid/elasticsearch/4ee60836-1922-43e0-8d9b-64ef9bb0b00a% >>>>>> 40googlegroups.com<https://groups.google.com/d/msgid/elasticsearch/4ee60836-1922-43e0-8d9b-64ef9bb0b00a%40googlegroups.com?utm_medium=email&utm_source=footer> >>>>>> . >>>>>> >>>>>> For more options, visit https://groups.google.com/d/optout. >>>>>> >>>>> >>>>> >>>>> >>>>> -- >>>>> Met vriendelijke groet, >>>>> >>>>> Martijn van Groningen >>>>> >>>> -- Met vriendelijke groet, Martijn van Groningen -- 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 [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/elasticsearch/CA%2BA76TzpG8bjBQ68Wy1cgneHta%3DLrxh-DWKtC3AFqfRxxLksHA%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.
