Vla*_*mir 6 elasticsearch elasticsearch-2.0
我有弹性搜索文档,结构如下:
{
"name": "item1",
"storages": [
{"items": ["a", "b", "c", "d", "e", "f"]},
{"items": ["a 1", "b 2", "c 3", "d 4", "e 5", "f 6"]}]
}
{
"name": "item2",
"storages": [
{"items": ["d", "e", "f", "g", "h", "i", "j"]},
{"items": ["d 4", "e 5", "f 6", "g 7", "h 8", "i 9", "j 10"]}
]
}
Run Code Online (Sandbox Code Playgroud)
我想搜索字符串序列,例如["d 4","e 5"].为此,我使用MoreLikeThis查询:
{
"query": {
"more_like_this" : {
"fields" : ["storages.items"],
"like" : ["d 4","e 5"],
"min_term_freq": 1,
"min_doc_freq": 1
}
}
}
Run Code Online (Sandbox Code Playgroud)
它工作得很好,但它返回"_score":第一个文件为0.1620518,第二个为"_score":0.13890153.
我希望从数组的开头('items')提高条件得分,因为因为"d 4","e 5"出现在数组的开头,所以它应该排名更高.
有没有办法在elasticsearch中创建这样的查询?可能它应该不是更像这个查询?
棘手的部分是查询可能像["d 4","e 5","xxx"](xxx不在文档中,但没关系)
正如您在相关问题的答案中看到的那样,
\n\n\n\n\n数组被索引\xe2\x80\x94作为多值字段可搜索\xe2\x80\x94,这些字段\n是无序的
\n
因此您在搜索时不能依赖顺序。
\n\n更糟糕的是,对象数组并不像您想象的那样存储。
\n\n\n\n对象数组并不像您期望的那样工作:您无法独立于数组中的其他对象来查询每个对象。如果您需要能够执行此操作,那么您应该使用嵌套数据类型而不是对象数据类型。
\n
| 归档时间: |
|
| 查看次数: |
207 次 |
| 最近记录: |