我在弹性搜索文档场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 /文件名搜索与弹性搜索# 它可能没有什么帮助,因为在你可以得到一些方向.. –