ElasticSearch多个字段的排序顺序

0x4*_*672 8 elasticsearch

在ElasticSearch中为多个字段指定排序顺序的最佳方法是什么?查询字符串格式似乎根本不起作用:

http://elasticsearch_url/index/_search?sort=field1:asc&sort=field2:desc&size=100
Run Code Online (Sandbox Code Playgroud)

有人想首先按field1,然后按field2排序,但只有一个字段似乎正确排序.完整的符号效果更好,但第一个条目偶尔会出现错误的搜索顺序:

curl -s -XGET http://elasticsearch_url/index/_search -d '
{
    "sort": [
        { "field1": { "order": "desc" }},
        { "field2": { "order": "desc" }}
    ],
    "size": 100
}'
Run Code Online (Sandbox Code Playgroud)

0x4*_*672 15

显然,第二种完整的符号效果更好。

还有一个问题是其中一个字段包含 url,ElasticSearch 以奇怪的方式解析了 url。即使是普通的字符串字段也很难排序,在 ElasticSearch 中索引一个 url更加困难。

sort关键字接受在阵列中,可以指定多个字段。

curl -s -XGET http://elasticsearch_url/index/_search -d '
{
    "sort": [
        { "field1": { "order": "desc" }},
        { "field2": { "order": "desc" }}
    ],
    "size": 100
}'
Run Code Online (Sandbox Code Playgroud)

  • 它们的代码片段相同吗?有什么变化。我还是没明白 (4认同)