Hey, there is a types filter, which you could combine with a filtered query, which in turn you could combine with a bool query using should or must clauses (which could do what you want if I read it correctly). keep in mind, that its all just building blocks when creating a query...
--Alex On Mon, Jul 28, 2014 at 3:23 PM, thale jacobs <[email protected]> wrote: > I have a ES search question and I think it can be solved using ES > scripting, but I was not able to solve it and there may be a better way. > > The index has 3 document types, 'province', 'city' and 'neighborhood' > Here is how the index is created: > > curl -s -XPUT 'localhost:9200/test/province/1' -d '{ "province": > "Ontario" }' > > curl -s -XPUT 'localhost:9200/test/city/2' -d '{ "province": "Ontario", > "city": "Toronto" }' > curl -s -XPUT 'localhost:9200/test/city/3' -d '{ "province": "Ontario", > "city" : "Ontario City" }' > > curl -s -XPUT 'localhost:9200/test/neighborhood/4' -d '{ "province": > "Ontario", "city" : "Ontario City", "neighborhood" : "Waterfront" }' > curl -s -XPUT 'localhost:9200/test/neighborhood/5' -d '{ "province": > "Ontario", "city" : "Ontario City", "neighborhood" : "Midtown Ontario" }' > > > > > The incoming search is for "Ontario". If the document type in the index > is 'province',I want to be able to search the 'province' field, if the > document type in the index is 'city' I want to search the 'city' field, and > if the document type in the index is 'neighborhood', I want to search the > 'neighborhood' field. So for the search of 'Ontario', the desired results > would be to return document: > > 1,3,and 4 (1 is desired because the docuument type is 'province' and > 'Ontario' matched to the 'province' field, 3 is desired because 'Ontario' > matched to the 'city', and 4 is desired because 'Ontario' matched to the > district field. > > Here is a simple search that does not produce the desired results: > > curl -s -XGET 'localhost:9200/test/_search?pretty=true' -d '{ > "query":{ > "bool":{ > "should" : [ { > "multi_match" : { > "query" : "Ontario", > "fields" : [ "province", "city", "neighborhood" ] > } > }] > } > } > }' > > > > The problem is that the search for 'Ontario' get a match on all the docs. > Is it possible to search a specific field based on the document type? > Based on some example, I it seems like this might be a good usage for > "scripting" using a "script filter"? > > Thanks for your help. > > -- > 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/55fe24a5-86e9-42cb-aaaa-29dcee3557e0%40googlegroups.com > <https://groups.google.com/d/msgid/elasticsearch/55fe24a5-86e9-42cb-aaaa-29dcee3557e0%40googlegroups.com?utm_medium=email&utm_source=footer> > . > For more options, visit https://groups.google.com/d/optout. > -- 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/CAGCwEM8if5%2BMNKw5g0FLFAekj0t_T1O4s0gwcLAhcLDGkVWrhw%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.
