我正在试用Elasticsearch / Kibana 4而我的简单查询:
program.raw:"MYAPPLICATION" AND entityId.raw:"12345-67N"
将返回我想要的结果 - 即结果帖具有program和entityId字段,并且根据需要直接包含查询的术语。
但是,我想查询它的正确方法是:
program:"MYAPPLICATION" AND entityId:"12345-67N"
但是这只给出了关于程序查询的正确结果,然后在包含N或n的条件上给出了很多命中。 entityId-part似乎只在N?上查询。我很困惑,请解释一下。我已经阅读了Lucene查询语法,无法找到解释此问题的任何内容。
答案 0 :(得分:1)
.raw字段由logstash设置为elasticsearch中的“not_analyzed”字段。因此,它们不会被分成令牌,可以完整使用。
对于elasticsearch,entityId
看起来真的像['12345','67n'],这就是你的查询不匹配的原因。
请注意,在您的示例中,程序:myapplication应该可以工作(因为没有特殊字符)。小写是自动的,IIRC。