我在彈性搜索文檔場path
查詢具有這樣多個像彈性搜索
/logs/hadoop-yarn/container/application_1451299305289_0120/container_e18_1451299305289_0120_01_011007/stderr
/logs/hadoop-yarn/container/application_1451299305289_0120/container_e18_1451299305289_0120_01_008874/stderr
#*Note -- I want to select all the documents having below line in the **path** field
/logs/hadoop-yarn/container/application_1451299305289_0120/container_e18_1451299305289_0120_01_009257/stderr
我要打給某些事情(基本上是和這個path
領域的類似查詢條目
- 我已經給申請號
1451299305289_0120
- 我也給任務數
009257
- :在所有3)條件
- 路徑字段也應該包含
stderr
鑑於上述標準具有路徑字段作爲第三行的文件應該被選擇
這是我的嘗試到目前爲止
http://localhost:9200/logstash-*/_search?q=application_1451299305289_0120 AND path:stderr&size=50
該查詢符合第三條件,部分爲第一條件,即如果我搜索1451299305289_0120
而不是application_1451299305289_0120
,則得到0個結果。 (我真正需要的是像1451299305289_0120
搜索)
當我嘗試這樣做
http://10.30.145.160:9200/logstash-*/_search?q=path:*_1451299305289_0120*008779 AND path:stderr&size=50
我得到的結果,但在開始使用*
是一個代價高昂的操作。是他們另一種有效實現此目標的方法(如使用nGram
和使用的elastic-search
)
使用nGram將會非常昂貴,但是你可以做edgeNGram在分析時使用幾個過濾器。 我建議你可以看看這篇文章.. http:// stackoverflow。com/questions/9421358 /文件名搜索與彈性搜索# 它可能沒有什麼幫助,因爲在你可以得到一些方向.. –