文档中的 “标题” 字段是一个 分析的
字符串字段,也是一个多值字段,这意味着Elasticsearch会将字段内容拆分为令牌,并将其分别存储在索引中。您可能想按字母顺序在第一项上对
“标题” 字段进行排序,然后在第二项上依此类推,依此类推,但是elasticsearch在排序时并没有此信息可供使用。
因此,您可以从以下位置更改 “标题” 字段的映射:
{ "title": { "type": "string", "boost": 9, "analyzer": "autocomplete", "search_analyzer": "standard" }}变成这样的多字段映射:
{ "title": { "type": "string", "boost": 9, "analyzer": "autocomplete", "search_analyzer":"standard", "fields": { "raw": { "type": "string", "index": "not_analyzed" } } }}现在,基于已 分析的 “ title” 字段执行搜索, 并 基于 not_analyzed的 “
title.raw” 字段进行排序
{ "sort": [{ "title.raw": {"order": "desc"} }], "query":{ "term": { "title": "pagos" } }}它在这里得到了很好的解释:字符串排序和多字段



