gpt4 book ai didi

c# - ElasticSearch .net GeoDistance过滤器不起作用

转载 作者:行者123 更新时间:2023-12-03 00:50:34 25 4
gpt4 key购买 nike

我创建的Kibana Dev工具查询可以100%正常工作,并返回10公里范围内的结果。它的结构如下:

GET /catdb/_search
{
"query": {
"bool" : {
"must" : {
"match_phrase": {
"NAME": {
"query": "cats",
"slop": 3

}
}
},
"filter" : {
"geo_distance" : {
"distance" : "10km",
"location":{
"lat" : -25.859919,
"lon" : 28.183966
}
}
}
}
}
}

我在C#中使用NEST创建的查询具有相同的结构,但返回的结果远远超出了地理距离
        var catsSearch = client.Search<dynamic>(s => s.From(0).Size(20).Query(
q => q.Bool(
b => b.Must(
m => m.MatchPhrase(
n => n.Field("NAME").Query("cats").Slop(slop))).Filter(
f => f.GeoDistance(
g => g.Distance(10, DistanceUnit.Kilometers).Location(-25.859919, 28.183966))))));

我还尝试在位置过滤器中传递GeoLocation对象。
对于我可能做错了什么或如何调试的任何建议将不胜感激。

最佳答案

您未指定地理距离字段:.Field(p => p.Location)

关于c# - ElasticSearch .net GeoDistance过滤器不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54417776/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com