dud*_*ude 6 search solr wildcard prefix
我正在使用SOLR 3.2.对于文本字段类型,我的应用程序在SOLR实例上发出搜索查询.当用户发出像"book"这样的查询时,我如何让SOLR返回"book","bookshelf","bookasd"等结果.我应该手动将"*"字符附加到查询字符串中,还是在SOLR中有设置,以便默认情况下对字段进行前缀搜索?
这是文本字段类型的schema.xml部分:
<fieldType name="text" class="solr.TextField" positionIncrementGap="100">
<analyzer type="index">
<charFilter class="solr.HTMLStripCharFilterFactory"/>
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.StopFilterFactory"
ignoreCase="true"
words="stopwords.txt"
enablePositionIncrements="true"
/>
<filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="0" catenateNumbers="0" catenateAll="1" splitOnCaseChange="0"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.SnowballPorterFilterFactory" language="English" protected="protwords.txt"/>
</analyzer>
<analyzer type="query">
<charFilter class="solr.HTMLStripCharFilterFactory"/>
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/>
<filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="0" catenateNumbers="0" catenat0All="1" splitOnCaseChange="0"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.SnowballPorterFilterFactory" language="English" protected="protwords.txt"/>
</analyzer>
</fieldType>
Run Code Online (Sandbox Code Playgroud)
您要么必须通过在搜索词末尾附加通配符来在客户端进行处理。
影响 :-
另一种选择是使用您需要的处理来实现自定义查询解析器。
| 归档时间: |
|
| 查看次数: |
4420 次 |
| 最近记录: |