首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用elasticsearch按字母顺序排序

使用elasticsearch按字母顺序排序
EN

Stack Overflow用户
提问于 2017-06-04 19:57:39
回答 1查看 3.5K关注 0票数 2

我想知道是否有任何方法或设置来在elasticsearch中执行字母排序。我有一个字段,我想对它执行降序排序。Elastic按字典顺序执行它。我得到的是:

代码语言:javascript
运行
复制
Company name
Customer name
company address

我想得到的是:

代码语言:javascript
运行
复制
Company name
company address
Customer name

我发现我可以创建一个自定义分析器,但也许可以有更好的选择?

EN

回答 1

Stack Overflow用户

发布于 2017-06-05 16:11:08

使用multifields将文本字段索引为小写关键字,其中fielddata为true,您可以在其中进行排序。

代码语言:javascript
运行
复制
{
  "settings": {
    "analysis": {
      "analyzer": {
        "keyword_lowercase": {
          "tokenizer": "keyword",
          "filter": ["lowercase"]
        }
      }
    }
  },
  "mappings": {
    "my_type": {
      "properties": {
        "text": { 
          "type": "text",
          "fields": {
            "raw": { 
              "type":     "text",
              "analyzer": "keyword_lowercase",
              "fielddata": true
            }
          }
        }
      }
    }
  }
}

查询

代码语言:javascript
运行
复制
{
  "sort": [
    {
      "text.raw": {
        "order": "asc"
      }
    }
  ]
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44353815

复制
相关文章

相似问题

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