假设我有三个指数:城市、博物馆和景点。
现在我正在查询所有索引(_all)的一个术语,例如“维也纳”。
'query' :{
'fuzzy' : {
'name': 'vienna'
}
}作为结果我得到:
(Museum)(Museum)(Sight)(cities)有没有办法对指数进行排序,这样我就能得到第一城市,而不是景点和博物馆,就像这样:
(cities)(Sight)(Museum)(Museum)发布于 2018-10-23 15:18:25
您可以这样做,方法是按照所需的顺序为每个索引添加一个boost:
{
"query": {
"bool": {
"must": {
"fuzzy": {
"name": "vienna"
}
},
"should": [
{
"term": {
"_index": {
"value": "cities",
"boost": 3
}
}
},
{
"term": {
"_index": {
"value": "sights",
"boost": 2
}
}
},
{
"term": {
"_index": {
"value": "museums",
"boost": 1
}
}
}
]
}
}
}https://stackoverflow.com/questions/52952397
复制相似问题