【问题标题】:how to search negative number in solr?如何在solr中搜索负数?
【发布时间】:2011-11-22 03:18:48
【问题描述】:

在 solr 中,我想搜索一个带有负数的字段,例如 nodeId:-1。 在 schema.xml 中,我这样定义它:

solr 在使用“nodeId:-1”搜索时会抛出错误,如下所示: org.apache.lucene.queryParser.ParseException:无法解析“storeId:-1”:在第 1 行第 8 列遇到“-”“-”。期待以下之一:“(”...“*”。 .. ... ... ... ... "[" ... "{" ... ...

我必须使用 storeId:\-1 或 storeId:"-1" 搜索才能得到答案。

现在的问题是: 我可以修改任何 solr 配置文件以在没有任何转义字符的情况下进行搜索吗?或者在不修改java代码的情况下解决这个问题的另一种方法。 谢谢。

【问题讨论】:

    标签: search solr negative-number


    【解决方案1】:

    我个人认为在 Java 代码中正确转义是更好的方法。 ClientUtils.escapeQueryChars 将是首选方法。

    【讨论】:

      【解决方案2】:

      “-”是查询解析器的特殊字符,用于将某些子句标记为禁止。如果您不想转义此字符,则需要更改查询解析器。

      您可能想尝试一下raw query parser:q={!raw f=nodeId}-1,但它没有默认查询解析器的任何功能。实际上,原始查询解析器只允许您运行纯术语查询。

      【讨论】:

        猜你喜欢
        • 2015-05-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-04-23
        相关资源
        最近更新 更多