我有一个字段(比如color),它可以有四个值(红色、蓝色、黄色和绿色)之一。我想对它们进行排序,这样红色将有一个1的分数,所以所有的红色将在顶部,其次是蓝色,分数为2,黄色,分数为3等等。
如何为ElasticSearch中的排序分配这些手动评分?
您可以使用function_score特性,该特性将提供自定义评分功能。您可以用所需的查询替换match_all查询。
{
"query": {
"function_score": {
"boost_mode": "replace",
"query": {
"match_all": {}
},
"functions": [
{
"filter": {
"term": {
"color": "red"
}
},
"weight": 1
},
{
"filter": {
"term": {
"color": "blue"
}
},
"weight": 3
},
{
"filter": {
"term": {
"color": "yellow"
}
},
"weight": 2
}
]
}
},
"size": 20,
"from": 0
}
问题内容: 我希望能够以一定顺序返回预输入项。例如,搜索应返回: 1)以搜索词para开头的建议应在顶部并按字母顺序排列 2)其余项目应按字母顺序显示在下方 Elasticsearch有可能吗? 更新资料 如果我希望输出像这样: 因此,所有包含前缀的术语都位于顶部,其他所有术语均按字母顺序排列。 问题答案: 这是我的建议(同样,您需要启用脚本): 更新 对于您的更新问题, 即使我希望再发表一则文章
我试图实现分页和排序的HTTP请求使用Spring的分页。一切正常,除了我想明确声明可排序的属性,即资源属性,,。默认实现允许用户调用HTTP请求和排序结果的所有属性。但是,我想限制排序仅列和。 下面是我当前代码的示例 显而易见的解决方案是从可分页对象中检索排序对象,并像这样手动验证属性 } 我的问题是,在Spring中是否存在一种仅通过显式定义的属性进行排序的更简单方法。
问题内容: 我正在尝试在Elasticsearch中进行嵌套排序,但到目前为止没有成功。 我的数据结构: 我想根据文档中第一作者的姓氏对文档进行排序。 使用的映射: 使用SearchRequestBuilder(JAVA)进行排序: 这行得通,但没有给出想要的结果(例如,首先是“叫卖”,然后是“罗杰”)。 我错过了什么吗?有没有办法表明Elasticsearch访问数组authorList的ind
问题内容: 我有ElasticSearch 5,我想根据字段值进行排序。想象一下,具有类别(例如流派)的文档可能具有科幻,戏剧,喜剧等值,并且在进行搜索时,我想对值进行排序,以便首先出现喜剧,然后是科幻和戏剧。然后,我当然会按照其他条件在小组内订购。有人可以指出我该怎么做吗? 问题答案: 使用手动排序进行Elasticsearch排序 在可以根据字段的特定值分配顺序的情况下,这是可能的。 我已经使
我试图在Elasticsearch中进行嵌套排序,但到目前为止还没有成功。 我的数据结构: 我想根据文档中第一作者的姓氏对文档进行排序。 使用SearchRequestBuilder(JAVA)进行排序: 这是有效的,但不能给出想要的结果(例如,首先是“霍金”,然后是“罗杰”)。 我是不是漏掉了什么?是否有一种方法可以指示Elasticsearch访问数组authorlist的index=0?是否
问题内容: 我想按top_hit的doc.score订购存储桶。我当前的实现如下。 这是错误的,因为存储桶是按其最高得分而不是其source_priority文档最高得分排序的。有办法解决这个问题吗? 问题答案: 我遇到了同样的问题,而解决问题的方法是在docs得分上引入子汇总。然后在我的外部聚合中,我按max_score聚合的名称排序。 我遵循了此链接上的指示: http://www.elast