按脚本字段对Elasticsearch中的搜索结果进行排序

海尔吉·伯格

我在Elasticsearch中有此查询。它可以正常工作,但不能按到搜索点的距离对结果进行排序。

GET /place_names/_search
{
   "query": {
    "bool" : {
        "must" : {
          "match_all" : {}
        },
    "filter" : {
      "geo_distance" : {
          "distance" : "10km",
          "location" : {
              "lat" : 64, 
              "lon" : -22
          }
        }
      }
    }
   },
    "script_fields" : {
      "id": {"script": "doc['id']"},
      "name": {"script": "doc['name']"},
      "type": {"script": "doc['type']"},
      "location": {"script": "doc['location']"},
      "dist_to_point" : {
          "script" : "doc['location'].arcDistance(64, -22)"
      }
    }
}

我想按“ dist_to_point”对结果进行排序。有可能吗

乔·索罗辛

您可以使用内置的_geo_distance排序:

GET /place_names/_search
{
  "sort": [
    {
      "_geo_distance": {
        "location": {
          "lat": 64,
          "lon": -22
        },
        "distance_type" : "arc",
        "order": "asc"
      }
    }
  ]
}

或应用_script排序-两者等效:

GET places/_search
{
  "sort": [
    {
      "_geo_distance": {
        "location": {
          "lat": 64,
          "lon": -22
        },
        "distance_type": "arc",
        "order": "asc"
      }
    },
    {
      "_script": {
        "script": "doc['location'].arcDistance(64, -22)",
        "type": "number",
        "order": "asc"
      }
    }
  ]
}

但是您不能按脚本字段进行排序,因为它们仅存在于与排序API分开的搜索API中(=它们彼此不了解)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Elasticsearch:在文本字段中根据搜索字符串的索引值对文档进行排序

来自分类Dev

在 Elstic 搜索中按字段长度对查询进行排序

来自分类Dev

根据数字字段对Lucene中的搜索结果进行排序

来自分类Dev

防止按EasyAdmin后端中的特定字段对结果进行排序

来自分类Dev

按字母顺序对搜索结果进行排序

来自分类Dev

弹性搜索,使用脚本字段获取聚合结果

来自分类Dev

在Elasticsearch中按字段的单词数排序

来自分类Dev

如何在javascript中按相关性对搜索结果进行排序

来自分类Dev

如何按结果中的字段对一组桶进行排序

来自分类Dev

Elasticsearch 对嵌套字段中的值进行排序

来自分类Dev

在Groovy脚本中按日期字段对XML子节点进行排序

来自分类Dev

如何在Elasticsearch中基于嵌套字段的最小值对结果集进行排序?

来自分类Dev

Sitecore 7:按字段对Lucene结果进行排序

来自分类Dev

Elasticsearch按特定字段进行存储库搜索

来自分类Dev

您如何从搜索栏中对GitHub搜索结果进行排序?

来自分类Dev

尝试按从结果中获取的键对获取结果进行排序

来自分类Dev

C#,按字母顺序对LINQ结果进行排序,然后根据搜索键对它进行排序

来自分类Dev

C#,按字母顺序对LINQ结果进行排序,然后根据搜索键对它进行排序

来自分类Dev

搜索结果按Rails中的优先顺序排序

来自分类Dev

搜索结果按Rails中的优先顺序排序

来自分类Dev

JavaScript 中的模糊搜索,结果按相关性排序

来自分类Dev

在Elasticsearch中搜索字符串数组中的确切字段,并按最新发布日期进行排序

来自分类Dev

Elasticsearch按字段存在排序

来自分类Dev

按分数排序时在Elasticsearch中搜索之后(分页)

来自分类Dev

Elasticsearch-汇总脚本字段

来自分类Dev

过滤然后在ElasticSearch中按查询对结果排序

来自分类Dev

按组对结果进行排序

来自分类Dev

Eclipse 打开资源对话框:如何按项目名称对搜索结果进行排序/排序?

来自分类Dev

如何使用java在Elasticsearch中按字段属性搜索文档?

Related 相关文章

  1. 1

    Elasticsearch:在文本字段中根据搜索字符串的索引值对文档进行排序

  2. 2

    在 Elstic 搜索中按字段长度对查询进行排序

  3. 3

    根据数字字段对Lucene中的搜索结果进行排序

  4. 4

    防止按EasyAdmin后端中的特定字段对结果进行排序

  5. 5

    按字母顺序对搜索结果进行排序

  6. 6

    弹性搜索,使用脚本字段获取聚合结果

  7. 7

    在Elasticsearch中按字段的单词数排序

  8. 8

    如何在javascript中按相关性对搜索结果进行排序

  9. 9

    如何按结果中的字段对一组桶进行排序

  10. 10

    Elasticsearch 对嵌套字段中的值进行排序

  11. 11

    在Groovy脚本中按日期字段对XML子节点进行排序

  12. 12

    如何在Elasticsearch中基于嵌套字段的最小值对结果集进行排序?

  13. 13

    Sitecore 7:按字段对Lucene结果进行排序

  14. 14

    Elasticsearch按特定字段进行存储库搜索

  15. 15

    您如何从搜索栏中对GitHub搜索结果进行排序?

  16. 16

    尝试按从结果中获取的键对获取结果进行排序

  17. 17

    C#,按字母顺序对LINQ结果进行排序,然后根据搜索键对它进行排序

  18. 18

    C#,按字母顺序对LINQ结果进行排序,然后根据搜索键对它进行排序

  19. 19

    搜索结果按Rails中的优先顺序排序

  20. 20

    搜索结果按Rails中的优先顺序排序

  21. 21

    JavaScript 中的模糊搜索,结果按相关性排序

  22. 22

    在Elasticsearch中搜索字符串数组中的确切字段,并按最新发布日期进行排序

  23. 23

    Elasticsearch按字段存在排序

  24. 24

    按分数排序时在Elasticsearch中搜索之后(分页)

  25. 25

    Elasticsearch-汇总脚本字段

  26. 26

    过滤然后在ElasticSearch中按查询对结果排序

  27. 27

    按组对结果进行排序

  28. 28

    Eclipse 打开资源对话框:如何按项目名称对搜索结果进行排序/排序?

  29. 29

    如何使用java在Elasticsearch中按字段属性搜索文档?

热门标签

归档