2017-09-28 35 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