我需要构建一个简单的查询,将其转换为条件 “年龄”在40-60之间,“国家”在美国或IN。我正在使用bool运算符搜索解决方案。
我尝试使用以下选项:
"bool": {
"must": [
{
"range": {
"age": {
"from": 40,
"to": 60
}
}
},
{
"terms": {
"country": [
"US",
"IN"
]
}
}
]
}
但是这个查询并没有给我任何结果。我在这里错过了什么吗?
谢谢! ķ
答案 0 :(得分:1)
您的查询看起来很好。我认为你的查询不起作用的唯一原因是" coutry"字段使用默认分析器,其中术语是低级的并存储在索引中。如果你得到以下查询的预期结果,我的怀疑是正确的。要解决此问题,您可以将查询更改为我在下面提到的查询,也可以更改您的映射以使字段“#34; country"非分析
"bool": {
"must": [
{
"range": {
"age": {
"from": 40,
"to": 60
}
}
},
{
"terms": {
"country": [
"us", <---- Note that I'm using lower-cased terms
"in" <---- Note that I'm using lower-cased terms
]
}
}
]
}