Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sorting 弹性搜索对字符串本身中的单词进行排序,而不是对整个结果进行排序_Sorting_<img Src="//i.stack.imgur.com/RUiNP.png" Height="16" Width="18" Alt="" Class="sponsor Tag Img">elasticsearch - Fatal编程技术网 elasticsearch,Sorting,elasticsearch" /> elasticsearch,Sorting,elasticsearch" />

Sorting 弹性搜索对字符串本身中的单词进行排序,而不是对整个结果进行排序

Sorting 弹性搜索对字符串本身中的单词进行排序,而不是对整个结果进行排序,sorting,elasticsearch,Sorting,elasticsearch,当我做这样的事情时 { "sort": [ { "name": {"order": "desc"} } ]} 结果名称在名称字符串本身内排序,而不是按结果作为一个整体排序: "name" : "Test asdf" 排序值为 "sort": ["asdf"] 这是预期的吗?我如何才能得到它?按名称字段将结果作为一个整体进行排序,并按指定顺序对其排序(asc vs.desc) 感谢您的帮助,谢谢 如果无法将映射更改为未分析或使用关键字分析器,请使用

当我做这样的事情时

    {
  "sort": [
    {
      "name": {"order": "desc"}
    }
  ]}
结果名称在名称字符串本身内排序,而不是按结果作为一个整体排序:

"name" : "Test asdf"
排序值为

"sort": ["asdf"]
这是预期的吗?我如何才能得到它?按名称字段将结果作为一个整体进行排序,并按指定顺序对其排序(asc vs.desc)


感谢您的帮助,谢谢

如果无法将映射更改为
未分析
或使用
关键字
分析器,请使用脚本进行排序:

{
  "query": {
    "match_all": {}
  },
  "sort": {
    "_script": {
      "script": "_source.name",
      "lang": "groovy",
      "type": "string",
      "order": "desc"
    }
  }
}
当然,这需要启用动态脚本。如果无法启用或不想启用,请将脚本放在文件中并在查询中使用:

{
  "query": {
    "match_all": {}
  },
  "sort": {
    "_script": {
      "script_file": "source_sorting_script",
      "lang": "groovy",
      "type": "string",
      "order": "asc"
    }
  }
}

其中
source\u sorting\u script.groovy
只包含
\u source.name
,应该放在
/config/scripts
目录下。

在映射中,将name a的一个版本设置为not analysis,该版本应该用于排序。如果我无法修改映射,有没有办法解决?