简而言之,当不使用_geo_distance排序时,是否有一种方法可以返回地理距离?
更新:为澄清起见,我希望结果按随机顺序排列并包含距离。
是的,您可以使用脚本字段。
例如,假设您的文档具有一个名为的地理位置字段location
,则可以使用以下内容:
(请注意,\u0027
只是一个转义的单引号,所以\u0027location\u0027
真的是'location'
)
curl -XGET 'http://127.0.0.1:9200/geonames/_search?pretty=1' -d '
{
"script_fields" : {
"distance" : {
"params" : {
"lat" : 2.27,
"lon" : 50.3
},
"script" : "doc[\u0027location\u0027].distanceInKm(lat,lon)"
}
}
}
'
# [Thu Feb 16 11:20:29 2012] Response:
# {
# "hits" : {
# "hits" : [
# {
# "_score" : 1,
# "fields" : {
# "distance" : 466.844095463887
# },
# "_index" : "geonames_1318324623",
# "_id" : "6436641_en",
# "_type" : "place"
# },
... etc
如果还希望_source
返回该字段,则可以如下指定:
curl -XGET 'http://127.0.0.1:9200/geonames/_search?pretty=1' -d '
{
"fields" : [ "_source" ],
"script_fields" : {
"distance" : {
"params" : {
"lat" : 2.27,
"lon" : 50.3
},
"script" : "doc[\u0027location\u0027].distanceInKm(lat,lon)"
}
}
}
'
我使用了以下映射:我修改了英语分析器来使用ngram分析器,如下所示,这样我应该能够在以下情况下进行搜索:1]部分搜索和特殊字符搜索2]以获得语言分析器的优势 将我的数据索引如下:
问题内容: 我实现了一个脚本字段,该字段返回的距离如下所示:Elasticsearch结果中的返回距离? Ruby: 但是返回的距离不正确。如果该点很近,则距离会更正确,但是随着距离的增加,它会变得越来越不正确。 似乎无法弄清楚我在做什么。 问题答案: distanceInKm()将距离计算为平面上的点,该速度很快但不太准确。尝试改用arcDistanceInKm()。
问题内容: 我正在通过ElasticSearch NEST C#客户端运行一个简单的查询。通过http运行相同的查询时收到结果,但是从客户端返回的文档数量为零。 这就是我填充数据集的方式: 此POST请求返回JSON结果: 这是我没有返回任何代码的代码。 我想念什么?提前致谢 .. 问题答案: NEST尝试猜测类型和索引名称,在您的情况下,它将使用/ blog / blogentries 因为您告
我有一个带有两个衰减函数(ES 2.4.4)的查询,我使用对查询项中的衰减函数得分求和。对于测试,我使用来防止任何其他分数(来自查询)影响我的分数(我想测试衰减函数)。 这些是我的衰减函数: 我的结果包括2篇不同日期的文章(2017-08-28,2009-05-08)具有相同的优先级(1000)和相同的分数!(13.122)怎么会这样?为什么没有获得更好的分数?所以我试图解释查询。 对于2017-
我想查询表A中每个点(id)到表B中每个多边形(id)的距离。对于距离计算,我使用ST_距离。但是,ST_Distance(显然)返回到每个多边形的距离。但我只需要每个点的“最接近”结果。到目前为止,我尝试了下面的查询,它返回了正确的结果,但是(当然)只返回了一个点。 结果应该是这样的: 你有什么提示吗?非常感谢你。 更新1 运行上述查询(3h 24m)后,返回的结果为空。然而,应该有一个结果。括
我正在建立一个弹性搜索索引,并希望它的行为(返回结果)某种方式。我已经建立了父母/孩子的关系。 我已经用一些“父”文档和一堆父文档设置正确的“子”文档填充了它。 当我使用普通搜索查询搜索内容时,我当然会返回所有匹配的文档。父文档和子文档,但两者之间没有联系。如果我使用has_child筛选器搜索内容,它将正确地搜索子文档,并向我返回匹配的父文档: 问题是,我想搜索孩子,并在一个文档中找回父母和孩子