使用ElasticSearch的复杂查询

时间:2015-10-07 03:22:48

标签: elasticsearch elasticsearch-net

我刚刚开始使用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"
         ]

}

提前致谢!

1 个答案:

答案 0 :(得分:0)

城市1中的3张床就像两个条款之间的AND条件。使用bool并且必须构造查询。尝试阅读bool条款:必须,应该而且绝不能。他们的组合将满足您的需求。

query: {
  bool: {
   must: [{
         term: {
          address.city : {
           value: City1
           }
          },{
           term: {
            beds : {
            value: 3
           }
         }]
     }}