给出一个非常简单的文件:
`concert_name` - String containing the name of the concert
`city` - City ID of the concert
`band` - Band ID
`relevance` - An integer that indicate how important the concert is
我希望在特定城市举办所有音乐会,但我希望首先针对特定乐队(按相关性排序)以及所有其他按相关性排序
所以我可以查询:
在
的音乐会Milan
中为我提供所有音乐会,并先返回Pearl Jam
我如何在Elastica 1.X中执行此操作?
答案 0 :(得分:0)
编辑1
我认为可以在多个字段上使用sorting并使用script来完成此操作。你必须enable dynamic scripting。我将10的值赋给你想要匹配的乐队,其他人得到0的值。试试这样的事情
{
"query": {
"match": {
"city": "milan"
}
},
"sort": [
{
"_script": {
"script": "if(doc['band'].value == 'pearl') {10} else {0}",
"type": "number",
"order": "desc"
}
},
{
"relevance": {
"order": "desc"
}
}
]
}
我假设更高的数字意味着更重要的音乐会。我已在ES 1.7
这有帮助吗?