【问题标题】:Lucene Query Syntax of field with a space带有空格的字段的 Lucene 查询语法
【发布时间】:2014-06-09 01:33:52
【问题描述】:

我正在尝试执行两个 Lucene 查询。第一个有效。第二个没有。我的第一个查询如下所示:

level:"dangerous"

我的第二个查询如下所示:

IP address:"11.22.333.444"

我没有收到查询错误。但是,我知道有匹配 IP 地址的文档。出于这个原因,我怀疑“IP”和“地址”之间的空格导致了问题。但是,我不是 Lucene 的专家。所以,我不确定我是否正确。

当我使用 PostMan 查看我的结果集时,我可以看到一个包含如下字段的文档:

"IP address": "11.22.333.444"

谁能告诉我我的查询是否正确?或者,如果我遗漏了什么?

谢谢!

【问题讨论】:

    标签: lucene


    【解决方案1】:

    是的,那个空间就是问题所在。

    字段名称中的空格是允许的,但与查询解析器语法冲突。您实际上是在运行两个子查询组合为SHOULD 子句(即OR):

    • IP
    • address:"11.22.333.444"

    您可以在空格前使用单斜杠转义空格,例如:

    IP\ address:"11.22.333.444"
    

    【讨论】:

    • 我怀疑原始帖子中有一个类型。诀窍是使用一个斜杠来转义空格,然后它就可以工作了。如:IP\地址:...
    猜你喜欢
    • 1970-01-01
    • 2012-08-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-12
    • 1970-01-01
    相关资源
    最近更新 更多