我正在创建一个带有地理上下文的完成建议器(Elastic 5.x)。
mapping...
"suggest": {
"type": "completion",
...
"contexts": [
{
"name": "geoloc",
"type": "geo",
"precision": 3,
"path": "geolocation"
}
]
Run Code Online (Sandbox Code Playgroud)
当我查询这个时,我希望它不按地理上下文过滤,只增强 geohash 内的结果。通过单个 geohash 进行过滤,或者通过较低精度进行过滤,然后在原始过滤器中提高更高的精度,效果非常好,如下所示:
GET /my-index/_search
{
"suggest": {
...
"completion": {
"field": "suggest",
"size": "10",
"contexts": {
"geoloc": [
{
"lat": 44.8214564,
"lon": -93.475399,
"precision": 1
},
{
"lat": 44.8214564,
"lon": -93.475399,
"boost": 2
}
]
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
但是,我无法让它仅在单个地理上下文上增强而不进行过滤。当我提交以下查询时,它会过滤并增强:
GET /my-index/_search
{
"suggest": {
...
"completion": {
"field": "suggest",
"size": "10", …Run Code Online (Sandbox Code Playgroud)