Sorting Elasticsearch:如何对查询字符串查询的结果进行排序?
我使用Elasticsearch搜索日语文档,并结合多个字段(形态学分析+N-Gram)进行查询 查询如下:Sorting Elasticsearch:如何对查询字符串查询的结果进行排序?,sorting,elasticsearch,Sorting,elasticsearch,我使用Elasticsearch搜索日语文档,并结合多个字段(形态学分析+N-Gram)进行查询 查询如下: { "query":{ "bool":{ "must":{ "query_string":{ "query":"QUERY_KEYWORD", "fields":[ "title", "description",
{
"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\u count
排序的每个文档(忽略query\u string
中的分数),这不是我想要的
多级排序也不起作用:
"sort": [
{ "view_count": { "order": "desc" }},
{ "_score": { "order": "desc" }}
]
返回与上面的查询相同的值,并且
"sort": [
{ "_score": { "order": "desc" }},
{ "view_count": { "order": "desc" }}
]
根本不排序(我怀疑view\u count
只是作为\u score
的制表符)
问题是:如何获得匹配QUERY\u关键字
的文档,并按view\u count
排序
提前感谢。排序优先于按分数排序。在您的例子中,我认为您必须查看函数分数查询。特别是字段值因子
这样,浏览量会根据浏览量影响分数。谢谢。我的理解是,函数分数查询对另一个查询有效吗?我意识到
query\u string
query本身会返回索引中的每个文档,因此可能不可能得到一个好的排序结果。嗯,不确定你的意思,如果你没有为query\u string查询提供查询参数,那么它等于match\u all查询。但是,如果您实际上正在查找一个单词,那么查询字符串查询将不会返回所有文档。