是否可以根据多值字段中存在的元素进行排序?
示例:
a) document with "111"
put test/test/1
{
"bit_position" : [
1,
2,
3
]
}
b) document with 010
put test/test/2
{
"bit_position": [
2
]
}
基于"bit_position" = 3
的排序应返回文档a,然后返回b。
我读到这可能是嵌套字段,但在bit_position
未嵌套时无法找到有关它的信息。
我发现了这个问题:Sorting by value in multivalued field in elasticsearch但尚未得到答复。
谢谢
答案 0 :(得分:0)
我通过使用function_score解决了这个问题:
POST test/_search
{
"query": {
"function_score": {
"match_all": {},
"functions": [
{
"filter": {
"terms": {
"bit_position": [
1,
3
]
}
},
"weight": 2
}
],
"score_mode": "multiply"
}
}
}