我使用Elasticsearch搜索日文文档,并结合多个字段(形态分析+ N-Gram)进行查询。
以下查询:
{
"query":{
"bool":{
"must":{
"query_string":{
"query":"QUERY_KEYWORD",
"fields":[
"title",
"description",
"content",
"content.ngram^3"
]
}
},
"should":[
[
{
"range":{
"created":{
"boost":"5",
"gte":"now-1M"
}
}
}
]
]
}
}
"sort":{
"view_count": {"order": "desc"}
}
}
返回索引中的每个文档按view_count
排序(忽略query_string
的分数),这不是我想要的。
多级排序也不好用:
"sort": [
{ "view_count": { "order": "desc" }},
{ "_score": { "order": "desc" }}
]
返回与上面的查询相同的内容,
"sort": [
{ "_score": { "order": "desc" }},
{ "view_count": { "order": "desc" }}
]
根本不对任何事情进行排序(我怀疑view_count
只是作为_score
的制作者。)
问题是:如何获得与QUERY_KEYWORD
排序的view_count
匹配的文档?
提前致谢。
答案 0 :(得分:0)
按分数排序的排序。在你的情况下,我认为你必须看看功能分数查询。特别是字段值因子。
有了这个,视图的数量会根据视图的数量影响得分。