2017-09-28 25 views
0

我刚在我的数据库中实现了ELASTIC SEARCH,我对此很新。我必须写查询 -弹性搜索 - 如果条件通过检查数组是否为空

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

  2. 用户还可以在像国阵或彩色阵列或任何标签阵列

  3. 如果应用则只有它应该在数据库各自的领域与之相匹配的任何过滤器必须检查搜索文本应用过滤器。

查询在蒙戈如:

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

请帮助我。

+0

你说的“我的意思是刚在我的数据库上实现了ELASTIC SEARCH“? 您是否将一些数据(文档)编入elasticsearch?如果是,那么文档结构是什么? – theDima

+0

是的,我已完成所有文档的索引。收藏是MYCOLL和我的索引如下: “国家”:{ “类型”: “串” }, “端口”:{ “类型”: “串” }, “名称”:{ “type”:“string” } – komal

回答

0

我建议你在正式Elasticsearch阅读教程,例如:this artice

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

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

Thanku so uch for the answer。我已经做到了。但是当用户应用端口和国家的[数组]过滤器时,问题出现在第二和第三部分。如何使用动态过滤器检查每个值。 – komal