String 在solr4.4中,查询具有大值的StrFields不会返回任何文档
我在查询具有较大值(例如70k个字符)的StrField时遇到问题。我使用的是Solr 4.4,文档类型为字符串:String 在solr4.4中,查询具有大值的StrFields不会返回任何文档,string,solr,solrj,solr4,String,Solr,Solrj,Solr4,我在查询具有较大值(例如70k个字符)的StrField时遇到问题。我使用的是Solr 4.4,文档类型为字符串: <fieldType name="string" class="solr.StrField" sortMissingLast="true"/> 和字段: <dynamicField name="someFieldName_*" type="string" indexed="true" stored="true" /> 请注意,它是存储的,以备不时
<fieldType name="string" class="solr.StrField" sortMissingLast="true"/>
和字段:
<dynamicField name="someFieldName_*" type="string" indexed="true" stored="true" />
请注意,它是存储的,以备不时之需
在我的文档中,此StrField中的值的长度最多可达~70k个字符或更多
我正在尝试的查询是someFieldName\u 1::
。如果someFieldName_1
具有长度<32767个字符的值,那么它可以正常工作,并且我可以返回在该字段中具有值的各种文档
但是,如果我查询someFieldName_2:
并且someFieldName_2
的值的长度>=32767,我不会返回任何文档。尽管我知道许多文档在someFieldName_2
中都有值
我知道这一点,因为我查询*:*
并在someFieldName_2
中看到具有(大)值的文档
那么,StrField中的字符串长度是否存在某种类型的限制,我可以对其进行查询?32767=2^15非常可疑=)Yonik在Solr用户邮件列表中回答了这个问题,“我相信这是索引令牌的最大大小……”。因此,这种行为似乎是意料之中的
但是,另一个用户打开了一个关于缺少错误的错误报告,“我将打开一个错误,以找出为什么我们在索引时没有为此生成错误,但查询时的行为看起来是正确的…”您的solrconfig.xml中是否配置了LimitTokenCountFilterFactory。恐怕这是一个bug或“隐藏”特性,我记得看到过关于本机字符串类型限制的bug报告,但“todo”列表中没有。有什么理由不使用solr.TextField吗?