我有Elasticsearch证明违反直觉的行为。这可以通过以下步骤重现
1)添加文件
curl -XPUT 'http://myelasticseach:1234/anindex/atype/1' -d '
{
obj1:
{
foo : "bar"
},
obj2 :
{
baz : "qux"
}
}'
2)搜索“bar”。我希望得到1个结果
curl -XGET 'http://myelasticseach:1234/anindex/_search?q=bar'
3)搜索'qux'。我希望得到1个结果
curl -XGET 'http://myelasticseach:1234/anindex/_search?q=qux'
4)更新文件
curl -XPUT 'http://myelasticseach:1234/anindex/atype/1' -d '
{
atype:
{
foo : "bar"
},
obj2 :
{
baz : "qux"
}
}'
5)搜索“bar”。我希望得到1个结果
curl -XGET 'http://myelasticseach:1234/anindex/_search?q=bar'
6)Sarch为'qux'。我期待1个结果,但得到0 ???
curl -XGET 'http://myelasticseach:1234/anindex/_search?q=qux'
为什么当文档中的嵌套对象具有与文档类型匹配的键时,我不能再使用与该类型不匹配的键的其余对象获得结果。
答案 0 :(得分:1)
这是elasticsearch 0.90.0中的已知问题。
请参阅“使用与其类型同名的嵌套对象进行错误的映射” https://github.com/elasticsearch/elasticsearch/issues/3005