如何避免弹性搜索将价值分解为单个术语

时间:2015-09-18 06:43:03

标签: elasticsearch

有一个用于排序的字段,值类似于a-b-c,但我按此字段排序,它不起作用。

以下是一些回复

{
  "msg":"a-b-c",
  "ti":"b18265be-67a0-4fa7-974f-8198edd1252a"},
  "sort":["c"]
} 

1 个答案:

答案 0 :(得分:0)

msg创建一个子字段,不会对其进行分析或使用keyword分析器。然后,在排序时使用子字段。

这样的事情:

{
  "mappings": {
    "test": {
      "properties": {
        "msg": {
          "type": "string",
          "fields": {
            "raw": {
              "type": "string", 
              "analyzer": "keyword" 
            }
          }
        }

排序时:

GET /test/test/_search
{
  "sort": [
    {
      "msg.raw": {
        "order": "asc"
      }
    }
  ]