使用函数_score中的Elasticsearch与_source返回距离

时间:2015-09-12 22:32:29

标签: elasticsearch

任何人都可以告诉我在ElasticSearch中如何使用function_score返回距离我的代码如下所示。

function_score: {
          query: {
            query_string: {
              query: shop_search,
              fields: [ 'shop_name', 'address.state', 'address.city', 'address.country', 'address.street'] 
            }
          },
//          boost: 5.0,
            gauss: {
              _score,
              location: { 
                origin: { lat:  12.8748964,
                  lon: 77.6413239
                },
                scale: "0.1km",
                offset: "0km",
                decay: "0.000005"
              }
            }
        }

1 个答案:

答案 0 :(得分:3)

您需要使用脚本字段来实现此目的。 像下面这样的东西对你有用 -

{
    "query" : {
        ...
    },
    "script_fields" : {
        "distance" : {
            "script" : "doc['location'].distanceInKm(12.8748964, 77.6413239)"
        }
    }
}

请浏览thisthis以获得更好的主意。