我将如何构造一个 ElasticSearch 查询来满足以下要求:
价格必须在 100,000 到 200,000 之间,但也显示超出此范围的结果,但如果高于 200,000 或低于 100,000,相关性会降低。
到目前为止,我有以下内容,但它似乎没有做我想做的事情(为简洁起见,省略了包装查询):
"function_score": {
"query": {
"range": {
"price_amount": {
"gte": 100000,
"lte": 200000
}
}
},
"functions": [
{
"gauss": {
"price_amount": {
"origin": "50000",
"offset": "50000",
"scale": "10000"
}
}
}
]
}
更新:
再看一眼,我认为将函数设置为以下,没有范围查询就可以了,不是吗?
"function_score": {
"functions": [
{
"gauss": {
"price_amount": {
"origin": "150000",
"offset": "50000",
"scale": "10000"
}
}
}
]
}
非常感谢!李