elasticsearch Elasticsearch是否保持多值字段的顺序?
Elasticsearch是否保持多值字段的顺序 即,如果我在字段中输入了以下值:
elasticsearch Elasticsearch是否保持多值字段的顺序?,
elasticsearch,lucene,search-engine,
elasticsearch,Lucene,Search Engine,Elasticsearch是否保持多值字段的顺序 即,如果我在字段中输入了以下值: { "values": ["one", "two", "three"], "values_original": ["1", "2", "3"] } (假设未分析字段) 我能确保列表的内容总是按照我放在那里的顺序返回吗 在上面的例子中,我想确保“values”中第一个位置的“one”始终对应于“values\u original”中的“1”等 我还可以将其作为嵌套对象保存,即 { "val
{
"values": ["one", "two", "three"],
"values_original": ["1", "2", "3"]
}
(假设未分析字段)
我能确保列表的内容总是按照我放在那里的顺序返回吗
在上面的例子中,我想确保“values”中第一个位置的“one”始终对应于“values\u original”中的“1”等
我还可以将其作为嵌套对象保存,即
{
"values": [
{"original": "1", "new": "one"},
{"original":"2", "new":"two"},
{"original":"3","new":"three"}
]
}
但是我想避免开销
如果保证多值字段中的值顺序保持不变,那么我保持两个并行多值字段的方法将起作用。我找到了答案 是的,我可以依靠Elasticsearch在文档的多值字段中保持值的顺序。(但是,当我执行搜索时,Elasticsearch没有关于某个术语在什么位置的信息) 根据文件: 当您从Elasticsearch获取文档时,任何数组的顺序都将与为文档编制索引时的顺序相同。源字段 您返回的JSON文档与您返回的JSON文档完全相同 索引 但是,数组被编入索引,可以作为无序的多值字段进行搜索。在搜索时,您不能引用“第一个” “元素”或“最后一个元素”。更确切地说,将数组视为 价值观 说: 当您从Elasticsearch获取文档时,任何数组的顺序都将与为文档编制索引时的顺序相同。返回的_源字段包含与索引的JSON文档完全相同的JSON文档 但是,数组被编入索引,可以作为无序的多值字段进行搜索。在搜索时,您不能引用“第一个元素”或“最后一个元素”。相反,可以将数组视为一包值 所以,对于存储字段,顺序似乎是保留的,而对于索引字段,则不是