我在映射中有3个文档,如下所示
{
“标签”:[ “一”],
“算”:10
}
{
“标签”:[ “一”, “B”, “C”],
“算”:50
}
{
“标签”:[ “一”, “C”],
“算”:100
}
当我按标签搜索时,请说 {“should”:[“tags”:“a”,“tags”:“b”]}
希望结果按标签匹配的数量排序,然后按计数desc排序,如下所示:
{
“标签”:[ “一”, “B”, “C”],
“算”:50
}
{
“标签”:[ “一”, “C”],
“算”:100
}
{
“标签”:[ “一”],
“算”:10
}
我怎样才能做到这一点?我尝试排序[_score,{“count”:“desc”}],但是,由于得分值都不同,{“count”:“desc”}部分从未起作用。
感谢任何帮助。感谢。
答案 0 :(得分:0)
{
"sort": [{"count": "desc"}],
"query": {
"filtered": {
"filter": {
"bool": {
"should": [
{"term": {"tag": "a"}},
{"term": {"tag": "b"}}
}
}
}
}
}
使用过滤查询忽略文档得分,并使用sort进行排序。
答案 1 :(得分:0)
这将按分数和按计数对结果进行排序:
{
"query": {
"bool": {
"should": [
{"term": {"tag": "a"}},
{"term": {"tag": "b"}}
]
}
},
"sort": {
"_score": {
"order": "desc"
},
"count": {
"order": "desc"
}
}
}