0
我需要做的是按位置增加文檔(越接近越好)。 locations
是嵌套類型。function_score:將缺失的字段視爲完美匹配
可以正常工作除如果文檔中缺少locations
,則Elasticsearch不返回文檔。如果缺少字段,Elasticsearch應將文檔視爲完美匹配。任何想法如何實現這一目標?
我的查詢:
{
"sort": [
{
"_score": "desc"
}
],
"query": {
"function_score": {
"query": {
"bool": {
"must_not": [],
"should": [
{
"nested": {
"path": "locations",
"query": {
"function_score": {
"score_mode": "sum",
"functions": [
{
"gauss": {
"locations.coordinates": {
"origin": {
"lat": "50.1078852",
"lon": "15.0385376"
},
"scale": "100km",
"offset": "20km",
"decay": "0.5"
}
}
}
]
}
}
}
}
]
}
}
}
}
}
BTW:我使用Elasticsearch 5.0
嗯,我會努力。我不明白一件事:爲什麼Elasticsearch跳過沒有'locations'字段的文檔?我把我的查詢放在'should'部分 - 而不是'must'。 – Bald