This appears to be caused by the snowball analyzer which is used on the "tags" field. To reproduce the odd behavior:
curl -XDELETE "http://localhost:9200/haystack" curl -XPOST "http://localhost:9200/haystack/" -d ' { "settings":{ "index":{} } }' curl -XPOST "http://localhost:9200/haystack/modelresult/_mapping" -d ' { "modelresult" : { "_boost" : { "name" : "boost", "null_value" : 1.0 }, "properties" : { "assigned_to" : { "type" : "string", "term_vector" : "with_positions_offsets", "analyzer" : "snowball" }, "clipped_from" : { "type" : "long", "index" : "analyzed" }, "created_by" : { "type" : "long", "index" : "analyzed" }, "django_ct" : { "type" : "string" }, "django_id" : { "type" : "string" }, "id" : { "type" : "string" }, "org" : { "type" : "long", "index" : "analyzed" }, "tags" : { "type" : "string", "store" : true, "term_vector" : "with_positions_offsets", "analyzer" : "snowball" }, "text" : { "type" : "string", "store" : true, "term_vector" : "with_positions_offsets", "analyzer" : "snowball" }, "type" : { "type" : "long", "index" : "analyzed" } } } }' curl -XPOST "http://localhost:9200/haystack/modelresult/" -d '{ "assigned_to": [], "created_by": 1, "django_ct": "preparations.preparation", "django_id": "37", "id": "preparations.preparation.37", "org": 1, "tags": [ "foo" ], "text": "Wildlife.wmv\n:)\n", "type": 2 }' echo "Shows no results (good)" curl "http://127.0.0.1:9200/haystack/_search?q=(tags%3A(%22a%22))&pretty" echo "Should show no results, but finds a match" curl "http://127.0.0.1:9200/haystack/_search?q=(org%3A(%221%22)%20AND%20tags%3A(%22a%22))&pretty" Switching the tags field to the "standard" analyzer fixes the problem. On Friday, May 9, 2014 3:31:08 PM UTC-7, md...@pdx.edu wrote: > > When I run the query (tags:("a")) in elasticsearch, I get 0 results. My > query URL looks like: > > http://127.0.0.1:9200/haystack/_search?q=(tags%3A(%22a%22)) > > That is to be expected, since no objects have a tag set to "a". > > Now when I change the condition, and add an AND, (org:("1") AND > tags:("a")), *I get 3 results back*! The query URL looks like: > > http://127.0.0.1:9200/haystack/_search?q=(org%3A(%221%22)%20AND%20tags%3A(%22a%22)) > > Getting *more* results back does not make any sense to me. I would expect > that kind of behavior with the OR operator, but AND? What is going on? > > (This is a cross post from > stackoverflow<http://stackoverflow.com/questions/23568699/odd-behavior-with-and-condition-in-elasticsearch> > ) > -- 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/fcaddf25-7aa6-46e0-873d-d52d349ad5af%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.