ElasticSearch用分数按字母顺序对查询进行排序

Ofi*_*r Z 0 sorting indexing elasticsearch

是否可以选择通过索引设置或映射的某些更改按字母顺序对查询进行排序?

我知道有一个“排序”查询,但是删除了分数,并且我希望除了该术语的字母排序之外,还要考虑分数。

例如,如果结果“ A”和“ Z”的得分为2,而“ C”的得分为1,我希望顺序为:

一种

ž

C

这可能吗?

这是我当前的索引设置和映射:

{
   "users": {
      "settings": {
         "index": {
            "analysis": {
               "filter": {
                  "shingle_filter": {
                     "max_shingle_size": "2",
                     "min_shingle_size": "2",
                     "output_unigrams": "true",
                     "type": "shingle"
                  },
                  "edgeNGram_filter": {
                     "type": "nGram",
                     "min_gram": "1",
                     "max_gram": "20"
                  }
               },
               "analyzer": {
                  "autocomplete_query_analyzer": {
                     "filter": [
                        "standard",
                        "asciifolding",
                        "lowercase"
                     ],
                     "tokenizer": "standard"
                  },
                  "autocomplete_index_analyzer": {
                     "filter": [
                        "standard",
                        "asciifolding",
                        "lowercase",
                        "shingle_filter",
                        "edgeNGram_filter"
                     ],
                     "tokenizer": "standard"
                  }
               }
            },
            "number_of_shards": "1",
            "number_of_replicas": "1"
         }
      }
   }
}

{
   "users": {
      "mappings": {
         "data": {
            "properties": {
               "name": {
                  "type": "string",
                  "analyzer": "autocomplete_index_analyzer",
                  "search_analyzer": "autocomplete_query_analyzer"
               }
            }
         }
      }
   }
}
Run Code Online (Sandbox Code Playgroud)

是否可以在索引设置中添加一些内容,以便自动按字母顺序对结果进行排序?

Mih*_*scu 5

ElasticSearch文档中的示例显示,您应该能够按多个值进行排序,包括_score。尝试类似:

"sort": [
    { "date":   { "order": "desc" }},
    { "_score": { "order": "desc" }}
]
Run Code Online (Sandbox Code Playgroud)

我不确定您要对哪个字段进行排序,因此您需要根据需要调整上面的示例。

让我知道这是否适合您:)