匹配最接近的数值 elasticsearchDSL(php)
match closest number value elasticsearchDSL(php)
我在 SO、弹性搜索文档上找不到答案,或者 google 无法为我的用例找到这个答案:
找到最接近 X 输入但仍低于 X 的数字。
我有一个如下所示的映射:
{
"rule": {
"properties": {
"price": { "type": "long" },
"from": { "type": "long" }
}
}
}
我需要最接近的匹配 from
,即小于输入值。
例如,我有这些规则:
{
{ "rule": {"from": 1, "price": 5} },
{ "rule": {"from": 50, "price": 4} },
{ "rule": {"from": 100, "price": 3} },
{ "rule": {"from": 150, "price": 2} }
}
如果我搜索值为 75 的 from
,我需要 "from": 50
的规则。
我找到的大多数答案都与 geo/ip 或文本有关,我找不到让我点击的示例。
范围查询可用于获取所有小于等于输入值的规则。可以返回前 1 个排序的文档(by from )
查询:
{
"query": {
"range": {
"rule.from": {
"lte": 75
}
}
},
"size": 1,
"sort": [
{
"rule.from": {
"order": "desc"
}
}
]
}
我在 SO、弹性搜索文档上找不到答案,或者 google 无法为我的用例找到这个答案: 找到最接近 X 输入但仍低于 X 的数字。
我有一个如下所示的映射:
{
"rule": {
"properties": {
"price": { "type": "long" },
"from": { "type": "long" }
}
}
}
我需要最接近的匹配 from
,即小于输入值。
例如,我有这些规则:
{
{ "rule": {"from": 1, "price": 5} },
{ "rule": {"from": 50, "price": 4} },
{ "rule": {"from": 100, "price": 3} },
{ "rule": {"from": 150, "price": 2} }
}
如果我搜索值为 75 的 from
,我需要 "from": 50
的规则。
我找到的大多数答案都与 geo/ip 或文本有关,我找不到让我点击的示例。
范围查询可用于获取所有小于等于输入值的规则。可以返回前 1 个排序的文档(by from )
查询:
{
"query": {
"range": {
"rule.from": {
"lte": 75
}
}
},
"size": 1,
"sort": [
{
"rule.from": {
"order": "desc"
}
}
]
}