Solr字段名称中的$

时间:2014-08-27 09:31:31

标签: solr solr4 solrcloud luke

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

  

解析fieldname时出错:解析函数时缺少param created_dt&$ 39; $ created_dt,$ name'

我理解这是因为Solr将其解释为变量。有没有办法解决它?

1 个答案:

答案 0 :(得分:0)

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

然而,您可以使用fl - 参数进行小规模修改:如果第一个字段没有符号,则应解析为OK。如果您使用fl=name,$created_dt,它将起作用(尽管您可能也想要从您包含的错误消息中获取$ name。如果是这样的话,请使用另一个没有$的字段名称)。 &fl=name,$foo_i至少在4.9.0下工作。

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