【问题标题】:$ in the Solr field nameSolr 字段名称中的 $
【发布时间】:2014-08-27 09:31:31
【问题描述】:

我在 Solr 中有一个带有 $ 符号的索引。重新索引不是一种选择。 Solr 中有功能查询,其中 $ 是变量标识符 (See here)。当我调用查询来检索特定字段(fl=$created_dt,name)时,solr 将返回错误

解析字段名时出错:解析函数“$created_dt,$name”时缺少参数 created_dt

我理解这是因为 Solr 将其解释为变量。有什么办法可以解决吗?

【问题讨论】:

    标签: solr solr4 solrcloud luke


    【解决方案1】:

    一般来说,正如您所发现的,在 Solr 的字段名称中避免使用大多数符号是个好主意。特别是 $ 用于在解析时允许在查询字符串中使用单独的参数进行替换(例如foo=$qq&qq=bar)。

    但是,您可以使用fl-参数的一个小技巧:如果第一个字段没有符号,它应该可以解析。如果您使用fl=name,$created_dt,它将起作用(尽管从您包含的错误消息中您可能也打算使用$name。如果是这种情况,请使用另一个不带$ 的字段名称)。 &fl=name,$foo_i 至少在 4.9.0 下工作。

    您可能希望将来计划迁移到更规范化的字段名称。

    【讨论】:

    • 我已经在没有 $ 符号的请求中提交了 fl,它是由 Solr 在异常中添加的。这确实可行,但是如果您在此之后添加另一个带有 $ 符号的参数,它将无法显示任何字段,即如果请求中的 fl 是 name, $foo1, $foo2 那么响应将返回文档,但没有字段。
    猜你喜欢
    • 2018-09-24
    • 2014-06-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-30
    • 1970-01-01
    • 2017-11-10
    • 1970-01-01
    相关资源
    最近更新 更多