首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Elastic Search中表示枚举以进行排序

问在Elastic Search中表示枚举以进行排序
EN

Stack Overflow用户
提问于 2021-06-10 15:13:53
回答 1查看 46关注 0票数 0

我有一个用例来表示弹性搜索中的难度级别(容易、中等、困难)的枚举,并支持该字段上的排序。如果此字段被索引为字符串,则排序将不会按预期工作。

支持这一点的一种方法是为ES中的每个枚举建立整数值索引,并在ES返回排序结果时将其映射为字符串值。

是否还有其他替代方案,比如ES本身负责按枚举顺序进行排序,而此字段作为字符串进行索引?我可以为字段指定自定义排序函数吗?function_score是一个选项,但是如果我必须根据枚举顺序进行排序,还有比定义自定义function_score更好的方法吗

在我的用例中,有多个这样的枚举定义了跨维度的比例,如难度、高度(低、中、高)、等级(好、中、差)等。以上两种解决方案都需要自定义工作,因为引入了一个新的维度。上面的任何一种方法都可以推广吗?

EN

回答 1

Stack Overflow用户

发布于 2021-06-10 20:41:44

您可以查看相同问题的答案here。您需要使用如下所示的script_score:

代码语言:javascript
复制
GET /my-index-2/_search
{
  "query": {
    "script_score": {
      "query": {
        "match_all":{}
      },
      "script": {
        "source": "if (doc['field name'].value == 'EASY'){2} else if(doc['field name'].value == 'MEDIUM') {1} else if(doc['field name'].value == 'DIFFICULT') {0}"
      }
    }
  }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67916392

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档