我试图弄清楚如何构建针对弹性搜索的查询,其中查询值存在于2个字段值的范围之间 .
让我们说我有一个模板
{
"template": "addresses",
"mappings": {
"addresses": {
"properties": {
"street_number_1": { "type": "integer" },
"street_number_2": { "type": "integer" },
... //other unimportant fields
}
}
}
根据上面的定义,如果我的地址为100-120 High Street,其中street_number_1为100而street_number_2为120,如果我要执行112 High Street的搜索,则该记录应返回100和100之间 . 120.什么样的弹性搜索功能/查询可以让我这样做?
1 回答
你有两个选择 . 使用当前映射,您可以使用两个range queries,如下所示:
第二个选项涉及更改映射以使用integer range作为街道号码 . 像这样定义您的街道号码映射:
然后索引您的地址文档,如下所示:
最后像这样查询: