字符串排序问题

对一个字符串类型的字段进行排序通常不准确,因为已经被分词成多个词条了

解决方式:对字段索引两次,一次索引分词(用于搜索),一次索引不分词(用于排序)

GET /lib3/_search

GET /lib3/user/_search

{

  "query": {

    "match_all": {}

  },

  "sort": [

    {

      "interests": {

        "order": "desc"

      }

    }

  ]

}

GET /lib3/user/_search

{

  "query": {

    "match_all": {}

  },

  "sort": [

    {

      "interests.raw": {

        "order": "asc"

      }

    }

  ]

}

DELETE lib3

PUT /lib3

{

    "settings":{

        "number_of_shards" : 3,

        "number_of_replicas" : 0

      },

     "mappings":{

      "user":{

        "properties":{

            "name": {"type":"text"},

            "address": {"type":"text"},

            "age": {"type":"integer"},

            "birthday": {"type":"date"},

            "interests": {

                "type":"text",

                "fields": {

                  "raw":{

                     "type": "keyword"

                   }

                },

                "fielddata": true

             }

          }

        }

     }

}

你可能感兴趣的:(字符串排序问题)