我刚刚开始使用es,我想知道如何编写查询以执行搜索,例如"在城市1" 3;或者在学校2附近的城市1的2个浴室和#34; 根据我的理解,我们可以使用同义词处理3张床/床/床/卧室,但我怎么知道" 3#床位于城市1"意味着我需要在床栏上搜索3,在城市场地中搜索City1?
这是我的样本数据集。
{
Address :
{
City : "City 1",
Zip : 21222
},
Beds : 3,
Baths : 2,
Schools :
[
"School 1",
"School 2"
]
},
{
Address :
{
City : "City 2",
Zip : 21220
},
Beds : 1,
Baths : 1,
Schools :
[
"School 3",
"School 2"
]
}
提前致谢!
答案 0 :(得分:0)
城市1中的3张床就像两个条款之间的AND条件。使用bool并且必须构造查询。尝试阅读bool条款:必须,应该而且绝不能。他们的组合将满足您的需求。
query: {
bool: {
must: [{
term: {
address.city : {
value: City1
}
},{
term: {
beds : {
value: 3
}
}]
}}