带空格字段的Lucene查询语法
我正在尝试执行两个Lucene查询。第一个有效。第二种情况并非如此。我的第一个查询如下所示:带空格字段的Lucene查询语法,lucene,Lucene,我正在尝试执行两个Lucene查询。第一个有效。第二种情况并非如此。我的第一个查询如下所示: level:"dangerous" IP address:"11.22.333.444" "IP address": "11.22.333.444" 我的第二个查询如下所示: level:"dangerous" IP address:"11.22.333.444" "IP address": "11.22.333.444" 我没有得到一个查询错误。不过,我知道有些文档具有匹配的IP地址。因此
level:"dangerous"
IP address:"11.22.333.444"
"IP address": "11.22.333.444"
我的第二个查询如下所示:
level:"dangerous"
IP address:"11.22.333.444"
"IP address": "11.22.333.444"
我没有得到一个查询错误。不过,我知道有些文档具有匹配的IP地址。因此,我怀疑“IP”和“address”之间的空格是导致问题的原因。然而,我不是Lucene方面的专家。所以,我不确定我的说法是否正确
当我使用PostMan查看结果集时,我可以看到一个文档,其字段如下所示:
level:"dangerous"
IP address:"11.22.333.444"
"IP address": "11.22.333.444"
有人能告诉我我的问题是否正确吗?或者,如果我遗漏了什么
谢谢大家! 是的,空间就是问题所在 字段名中的空格是允许的,但与查询解析器语法冲突。实际上,您正在运行两个子查询,它们组合为
SHOULD
子句(即或):
IP
地址:“11.22.333.444”
可以在空格前使用一条斜线来转义空格,如:
IP\ address:"11.22.333.444"
我怀疑在最初的帖子里有一个类型。诀窍是使用一条斜线来避开空间,然后它就可以工作了。如:IP\地址:。。。