es 版本6.5.4
依照官方文档demo,尝试使用context suggester。发现geo类型的precision参数用作距离时,和实际距离有很大差距。
数据:顺义 昌平 海淀 朝阳 四个坐标点,海淀和朝阳相距不足15km, 海淀和顺义昌平相距不足100km。query中的坐标为海淀。
问题: query中precision参数,需要设置到 >= 235km 后,四个坐标点才都会查出,<= 234km时,只有海淀能被查出。显然和实际距离有很大出入,希望各位大佬来指点迷津。
index如下:
我的query:
依照官方文档demo,尝试使用context suggester。发现geo类型的precision参数用作距离时,和实际距离有很大差距。
数据:顺义 昌平 海淀 朝阳 四个坐标点,海淀和朝阳相距不足15km, 海淀和顺义昌平相距不足100km。query中的坐标为海淀。
问题: query中precision参数,需要设置到 >= 235km 后,四个坐标点才都会查出,<= 234km时,只有海淀能被查出。显然和实际距离有很大出入,希望各位大佬来指点迷津。
index如下:
PUT place
{
"mappings": {
"t_place": {
"properties": {
"suggest": {
"type": "completion",
"contexts":
{
"name": "location",
"type": "geo",
"precision": "1m"
}
}
}
}
}
}
准备数据:POST place/t_place
{
"suggest":{
"input":"北京朝阳",
"contexts":{
"location":{
"lon": 116.46473947265625,
"lat": 39.97074548694463}
}
}
}
POST place/t_place
{
"suggest":{
"input":"北京昌平",
"contexts":{
"location":{
"lon":116.24501291015625,
"lat": 40.25850882449923}
}
}
}
POST place/t_place
{
"suggest":{
"input":"北京海淀",
"contexts":{
"location":{
"lon":116.29994455078125,
"lat": 39.964430480096404}
}
}
}
POST place/t_place
{
"suggest":{
"input":"北京顺义",
"contexts":{
"location":{
"lon":116.64464059570312,
"lat": 40.134730834121406}
}
}
}
我的query:
GET place/_search
{
"suggest": {
"YOUR_SUGGESTION": {
"text": "北京",
"completion": {
"field": "suggest",
"size": 10,
"contexts": {
"location":{
"lon":116.29994455078125,
"lat":39.964430480096404,
"precision": "235km"
}
}
}
}
}
}
0 个回复