假设我有三个指数:城市、博物馆和景点。
现在我正在查询所有索引(_all
(以获取一个术语,例如"维也纳"
'query' :{
'fuzzy' : {
'name': 'vienna'
}
}
结果我得到:
维也纳- :维也纳艺术博物馆
(Museum)
维也纳 - :维也纳历史博物馆
(Museum)
- 维也纳的里森拉德
(Sight)
- 维也纳
(cities)
有没有办法优先考虑指数,这样我就可以得到第一个城市,而不是景点,最后是博物馆,像这样:
- 维也纳
(cities)
- 维也纳的里森拉德
(Sight)
维也纳 - :维也纳艺术博物馆
(Museum)
维也纳 - :维也纳历史博物馆
(Museum)
您可以像这样做,按所需顺序为每个索引添加提升:
{
"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
}
}
}
]
}
}
}