elasticsearch 在Kibana和ElasticSearch中,使用分层路径分析的值的查询是否正常工作?,elasticsearch,kibana,elasticsearch,Kibana" /> elasticsearch 在Kibana和ElasticSearch中,使用分层路径分析的值的查询是否正常工作?,elasticsearch,kibana,elasticsearch,Kibana" />

elasticsearch 在Kibana和ElasticSearch中,使用分层路径分析的值的查询是否正常工作?

elasticsearch 在Kibana和ElasticSearch中,使用分层路径分析的值的查询是否正常工作?,elasticsearch,kibana,elasticsearch,Kibana,我的文档中有一个字段,存储在ElasticSearch中,并使用分层路径标记器/分析器进行分析 它得到了正确的分析: a/b/c分为a,a/b,a/b/c术语 及 a/b/d分为a,a/b,a/b/d(如预期) 但是,当我使用Kibana查询此字段时,例如,对于a/b/c,我也会得到a/b/d的值 是我做错了什么,还是Kibana不支持这种类型的查询 在这方面,RomanKibana使用查询字符串查询,因此您输入的查询也会被分析。这将导致查询以下术语: a、 a/b,a/b/c,因此它将找到a/

我的文档中有一个字段,存储在ElasticSearch中,并使用分层路径标记器/分析器进行分析

它得到了正确的分析:

a/b/c
分为
a
a/b
a/b/c
术语

a/b/d
分为
a
a/b
a/b/d
(如预期)

但是,当我使用Kibana查询此字段时,例如,对于
a/b/c
,我也会得到
a/b/d
的值

是我做错了什么,还是Kibana不支持这种类型的查询


在这方面,Roman

Kibana使用查询字符串查询,因此您输入的查询也会被分析。这将导致查询以下术语:

a、 a/b,a/b/c,因此它将找到a/b/d,并将其分析为a,a/b,a/b/d


您可以使用术语过滤器而不是查询来克服这一问题。

根据我的经验,Kibana最好使用相对平坦的json结构。我将所有嵌套的json结构转换为平面结构,并得到了我想要的结果。我已经有了平面文档,层次结构位于字段值中,该字段是一个文件名。因此,我希望能够找到所有文件名中有“a/b/c”的文件(包括低于a/b/c级别的文件),但名称中没有“a/b/d”的文件。非常感谢Jettro,这听起来是一个很好的建议,但我不确定我是否遵循了。这个字段(在我的例子中,它是指向dir的路径)用于查询文件列表,这些文件还受到额外过滤器的限制(例如,通过时间戳)。在这种情况下,您将如何使用过滤器来限制不需要的文件?或者,如果“搜索”查询使用与索引相同的分析器进行分析,是否可以添加一个只提取最长术语的自定义搜索分析器?e、 g.如果字符串查询由与映射中的字段相关联的搜索分析器分析,并分解为“a”、“a/b”、“a/b/c”-是否可以创建仅使用“a/b/c”术语的自定义搜索分析器?也许可以添加一个过滤器来搜索,而不是去掉较短的词,只保留最长的词?您能提供您正在执行的查询吗?使用面板顶部的“i”。此外,映射也会很好。