弹性搜索 - 通过检查数组是否为空来检测条件

时间:2017-09-28 06:30:26

标签: node.js elasticsearch mongoose querydsl mongoosastic

我刚刚在我的数据库上实现了弹性搜索,我对此非常陌生。我必须编写必须的查询 -

  1. 使用用户输入的搜索文本搜索数据库字段“name”。

  2. 用户还可以对搜索文本应用过滤器,例如国家/地区数组或颜色数组或任何标签数组

  3. 必须检查是否应用了任何过滤器,然后才能将其与数据库中的相应字段匹配。

  4. mongo中的

    查询如下:

    aggregate.match({ '$text': { '$search': searchString } });
    if(portarray){
    aggregate.match({ 'Port' : { $in:portArray } });
    }
    if(countriesArray){
     aggregate.match({ 'country' : { $in: countriesArray } });
    }
    

    请帮助我。

1 个答案:

答案 0 :(得分:0)

我建议您阅读官方Elasticsearch教程,例如:this artice

例如,回答你的第一个问题,你应该查询:

GET /yourIndexName/_search
 {
   "query": 
      { "match": 
         { "Name": "Pablo Escobar" } 
      }
 }