【发布时间】:2011-11-05 19:21:34
【问题描述】:
正斜杠“/”是 solr 字段名称中的保留字符吗?
我在编写将解析包含正斜杠“/”的字段的 solr 排序查询时遇到问题
对我的 solr 服务器进行 http 查询时:
q=*&sort=normal+desc
会工作,但是
q=*&sort=with/slash+desc
q=*&sort=with%2Fslash+desc
两者都失败说“不能在多值字段上使用 FieldCache:with”
每个 solr 文档包含两个 int 字段“normal”和“with/slash”。使用我的 solr 架构索引字段
...
<field name="normal" type="int" indexed="true" stored="true" required="false" />
<field name="with/slash" type="int" indexed="true" stored="true" required="false" />
...
我需要用什么特殊的方式在 solr 中编码正斜杠吗?或者我可以使用任何其他分隔符吗?我已经在使用“-”和“。”用于其他目的。
【问题讨论】:
-
转义字符请查看stackoverflow.com/questions/1133573/solr-sanitizing-query 转义Solr 字符并滚动到wiki.apache.org/solr/SolrQuerySyntax 底部了解如何编写URL。希望这会有所帮助
-
感谢您的链接,但是“/”字符不在可疑的 solr 字符列表中,而且我的 URL 编码没有问题。仅供参考,我决定通过在我的字段名称中将 / 替换为 _ 来解决此问题。
-
噢!我刚刚遇到了同样的问题。
/也不在我检查特殊字符的列表中。我已经尝试过编码、引号等。我也没有运气 =( -
你是否使用了一个标记器,它将索引拆分为 / 尝试使用 schema.xml 中的 solr.StrField
-
问题似乎是当找到正斜杠时,Solr 将您的字符串视为正则表达式:stackoverflow.com/questions/17798300/…;正如@tw123 建议的那样,用斜线转义应该可以解决您的问题。