【问题标题】:ElasticSearch. How to pass array to the search template弹性搜索。如何将数组传递给搜索模板
【发布时间】:2019-03-06 09:44:48
【问题描述】:

我有一个搜索系统,我需要在其中按位置评分。用户发送他的坐标,我检查它们是否与预先索引的多边形相交。问题是我不知道如何将坐标传递给 json 文件。我使用名为 elasticsearch 的 python 库。
这是我如何将搜索数据传递给搜索模板

的示例

这就是我尝试在搜索模板文件中使用它的方式

但问题是它被解析为字符串,但我需要一个浮点数组。

【问题讨论】:

    标签: python json elasticsearch mustache elasticsearch-template


    【解决方案1】:

    对于坐标,请使用以下格式:“坐标”:[[-77.03653, 38.897676], [-77.009051, 38.889939]] https://www.elastic.co/guide/en/elasticsearch/reference/current/geo-shape.html

    对于分数,请加入我们的例子和你的期望,但很确定你必须使用https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-function-score-query.html

    【讨论】:

    • 说到坐标,这些坐标是从python代码中使用函数search_template传给json的,而在json文件中获取它的唯一方法就是像这样“{{coordinates}}”,我传了一个list但它被强制转换为字符串,当我在 json 中访问它时,我找不到方法如何将它作为列表获取
    • 我想创建餐厅分数,这些多边形与我经过的点相交。客户端应用程序将用户位置传递给我,我正在根据用户坐标进行搜索并提升与我的点相交的坐标
    • 那么按距离排序可以吗?
    • 其实,没有。因为这些多边形代表餐厅的送货区域,所以它们有多远并不重要,就好像这个位置在这个多边形中一样。如果是我需要提高它的分数
    • 好的,你能加入我们的 1 或 2 个例子吗?我们应该能够解决分数部分。对于我无法帮助您的坐标,与弹性搜索无关,您当然必须使用另一个 json 序列化程序或自定义您的格式化程序。您还应该针对此问题发布代码。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-11
    • 2020-06-01
    • 2018-10-26
    • 2019-03-03
    • 1970-01-01
    相关资源
    最近更新 更多