我要查询由两个FromX
和ToY
字段的值构成的范围内的指定值,并按{{1}作为Title
字段来搜索text
}查询。
此示例显示了我的目标:
query_string
示例查询:
Id | FromX | ToY | Title
-----------------------------
1 | 1 | 7 | Mohammad
2 | 2 | 3 | Ali
3 | 1 | 6 | MohammadAli
4 | 2 | 5 | MohammadReza
5 | 1 | 2 | AliReza
6 | 2 | 2 | Sayed Ali
查询结果:
value: 2 AND title: *Ali*
更新1:
Id | FromX | ToY | Title
-----------------------------
2 | 2 | 3 | Ali
3 | 1 | 6 | MohammadAli
5 | 1 | 2 | AliReza
6 | 2 | 2 | Sayed Ali
的最后一条记录。答案 0 :(得分:1)
以下查询应该给您您期望的内容:
{
"query": {
"bool": {
"filter": [
{
"range": {
"FromX": {
"lte": 2
}
}
},
{
"range": {
"ToY": {
"gte": 2
}
}
},
{
"query_string": {
"query": "*ali*"
}
}
]
}
}
}
但是,不应不惜一切代价避免使用前缀通配符,因为它们会影响查询的性能。您可能应该使用ngrams分析标题字段,而对Title
字段进行常规匹配查询。