【发布时间】:2012-07-06 03:34:35
【问题描述】:
在名为 text 的字段上查询术语“人口”时:
.../solr/select?q=text:(pop*)
返回包含单词“population”的结果。
但是,如果星号前的字符数超过 5 个,则不返回任何内容:
.../solr/select?q=text:(popula*)
但是这有效:
.../solr/select?q=text:(population)
这样(我不知道为什么):
.../solr/select?q=text:(popul)
没有星号只有 5 个字符有效,全文有效。
它不仅限于“人口”,似乎也适用于其他词(我尝试了“分子”)。
为什么限制为 5 个字符?
与我下载的 solr 版本相比,我没有太大变化。
“text”字段的类型为“text_en_splitting”。
“text_en_splitting”有两个分析器,一个是“index”类型,一个是“query”类型。这两个我都没碰过。
查询分析器如下所示:
<analyzer type="query">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/>
<filter class="solr.StopFilterFactory"
ignoreCase="true"
words="lang/stopwords_en.txt"
enablePositionIncrements="true"
/>
<filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="0" catenateNumbers="0" catenateAll="0" splitOnCaseChange="1"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.KeywordMarkerFilterFactory" protected="protwords.txt"/>
<filter class="solr.PorterStemFilterFactory"/>
</analyzer>
索引分析器看起来相同,但缺少“solr.SynonymFilterFactory”过滤器。
【问题讨论】:
标签: solr