Update: I've tried to clear the cache, to refresh the index, closing and reopening the index, no joy. Then everything started to work automagically after a while (tens of minutes later). The index itself has a total of 620 docs.
On Wednesday, April 9, 2014 1:45:32 PM UTC-5, Jozsef Szalay wrote: > > I've encountered a weird problem that I hope someone has seen before, and > can provide a resolution for. > > I'm running Elasticsearch 1.0 downloaded as an RPM and installed on a > cluster of two RedHat nodes. Five shards with one replica each is > configured. > > Unfortunately, I could not reproduce the problem with test data (yet), > even though I tried it for hours. I'm posting my simplified setup with the > hope that it helps. > > # create the index > curl -XPUT http://localhost:9200/test_script/ > > # add mapping for parent type > curl -XPUT http://localhost:9200/test_script/my_parent/_mapping -d ' > { > "my_parent": { > "properties": { > "name": {"type": "string"} > } > } > }' > > # add mapping for child type > curl -XPUT http://localhost:9200/test_script/my_child/_mapping -d ' > { > "my_child": { > "_parent": {"type": "my_parent"}, > "properties": { > "value": {"type": "long"} > } > } > }' > > # index some records > curl -XPUT http://localhost:9200/test_script/my_parent/1 -d '{"name": > "Parent"}' > curl -XPUT http://localhost:9200/test_script/my_parent/2 -d '{"name": > "ParentTwo"}' > curl -XPUT http://localhost:9200/test_script/my_parent/3 -d '{"name": > "ParentThree"}' > curl -XPUT http://localhost:9200/test_script/my_child/abc?parent=1 -d > '{"value": 1234567}' > > > When I execute the following search (on my real index) > > curl -XGET http://localhost:9200/test_script/my_parent/_search?pretty=true-d ' > { > "query": { > "filtered": { > "filter": { > "bool": { > "must_not": { > "has_child": { > "type": "my_child", > "filter": { > "script": { > "script": > "doc[\"my_child.value\"].value != 1234567" > } > } > } > }, > "must": { > "script": { > "script": "doc[\"my_parent.name > \"].value.equals(\"parent\")" > } > } > } > } > } > } > }' > > I get partial results because one of the shards fails with this error > > "_shards" : { > "total" : 5, > "successful" : 4, > "failed" : 1, > "failures" : [ { > "index" : "test_script", > "shard" : 4, > "status" : 500, > "reason" : > "RemoteTransportException[[host-2][inet[/192.168.0.2:9300]][search/phase/query]]; > > nested: QueryPhaseExecutionException[[test_script][4]: > query[filtered(ConstantScore(BooleanFilter(-CustomQueryWrappingFilter(child_filter[my_child/my_parent](filtered(ConstantScore(ScriptFilter(vid=(String)doc[\"my_child.\"].value; > > doc[\"my_child.value\"].value != > 1234567;)))->cache(_type:my_child))))))->cache(_type:my_parent)],from[0],size[10]: > > Query Failed [Failed to execute main query]]; nested: > PropertyAccessException[[Error: could not access: value; in class: > org.elasticsearch.index.fielddata.ScriptDocValues$Empty]\n[Near : {... > value ....}]\n ^\n[Line: 1, Column: 1]]; " > > > All fields are dense (i.e. populated in every parent or child record), so > the field and the value should be available. > > It might be helpful to note that the exception always occurs on the other > node and not on the one my http request targeted. > > I never get an error, but receive the correct results, if I change the > query to something like this > > curl -XGET http://localhost:9200/test_script/my_parent/_search?pretty=true-d ' > { > "query": { > "filtered": { > "filter": { > "bool": { > "must_not": { > "has_child": { > "type": "my_child", > "filter": { > "script": { > "script": > "doc[\"my_child.value\"].value != 1234567" > } > } > } > }, > "must": { > * "term": {"my_parent.name > <http://my_parent.name>": "parent"}* > } > } > } > } > } > }' > > I appreciate any help you can provide. > > -- 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/83b54a47-0ccb-424f-99ea-1a166b2ed739%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
