绊脚石乃是进身之阶。

Context suggester 中 geo 类型的precision参数 使用疑问

Elasticsearch | 作者 kao00o | 发布于2019年12月03日 | 阅读数:1949

es 版本6.5.4 
 
依照官方文档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"
}
}
}
}
}
}



 
 
 
 
 
已邀请:

要回复问题请先登录注册