Lucene Solr查询未解析正斜杠
正斜杠“/”是solr字段名称中的保留字符吗 我在编写solr排序查询时遇到问题,该查询将解析包含正斜杠“/”的字段 对我的solr服务器进行http查询时:Lucene Solr查询未解析正斜杠,lucene,solr,Lucene,Solr,正斜杠“/”是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”。使用
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中是否有任何特殊的方式需要编码前斜杠?或者我可以使用其他分隔符吗?我已经在使用“-”和“.”用于其他目的。我刚刚遇到了同样的问题,经过一些实验发现,如果字段名中有正斜杠,则必须在Solr查询中用反斜杠将其转义(但请注意,您不必在字段列表参数中执行此操作,因此在“q”字段中输入搜索包含my_值的
/my/field/name
:
\/my\/field\/name:my\/u值
我还没有尝试过排序字段,但请尝试此字段并让我们知道:)
这是Solr 4.0.0 alpha上的内容。来自Solr wiki,网址为:
Solr4.0增加了正则表达式支持,这意味着“/”现在是
一个特殊字符,在搜索文本时必须转义
正斜杠
在我的情况下,我需要使用通配符搜索正斜杠
/
,例如:
+(*/*)
+(*2016/17*)
我试着这样逃避:
+(*2016\/*)
+(*2016\/17*)
但这也不起作用
解决方案是用双引号“
将文本包装起来,就像:
+("*\/*")
+("*/*")
+("*2016\/17*")
+("*2016/17*")
两者都返回了相同的结果,有无转义正斜杠对于转义字符,请检查转义Solr字符,并滚动到的底部以了解如何编写URL。希望此帮助感谢链接,但是“/"字符不在可疑solr字符列表中,我的URL编码也没有问题。仅供参考,我已决定通过在字段名中替换/为u来解决此问题。Doh!我刚刚遇到了相同的问题。
/
也不在我检查的特殊字符列表中。我尝试过编码、引号等。这对我来说运气都不好r=(可能是您正在使用一个标记化器,它在/schema.xml上拆分索引,并尝试使用schema.xml中的solr.StrField。问题似乎是,当找到正斜杠时,solr将字符串视为正则表达式:;按照@tw123的建议,使用斜杠转义应该可以解决您的问题。