我正在使用SOLR 4.10实现一个搜索服务,并希望根据已指定的术语提供搜索建议。这是今天搜索应用程序的标准功能...
我想要的是,SOLR对建议进行不区分大小写的搜索,但返回原始大小写字符串,这似乎是不可能的... 搜索:abc 返回:AbCdEfG
当我使用“LowerCaseFilterFactory”时,搜索不区分大小写,但返回的建议都是小写的。当我删除它时,返回的建议是原始的,但搜索不区分大小写... =/
我在solrconfig.xml中添加了此请求处理程序和搜索组件:
我在schema.xml中添加了这个。
我想要的是,SOLR对建议进行不区分大小写的搜索,但返回原始大小写字符串,这似乎是不可能的... 搜索:abc 返回:AbCdEfG
当我使用“LowerCaseFilterFactory”时,搜索不区分大小写,但返回的建议都是小写的。当我删除它时,返回的建议是原始的,但搜索不区分大小写... =/
我在solrconfig.xml中添加了此请求处理程序和搜索组件:
<requestHandler name="/suggest" class="org.apache.solr.handler.component.SearchHandler">
<lst name="defaults">
<str name="echoParams">none</str>
<str name="wt">json</str>
<str name="indent">false</str>
<str name="spellcheck">true</str>
<str name="spellcheck.dictionary">_all</str>
<str name="spellcheck.onlyMorePopular">false</str>
<str name="spellcheck.count">20</str>
<str name="spellcheck.collate">false</str>
</lst>
<arr name="components">
<str>suggest</str>
</arr>
</requestHandler>
<searchComponent name="suggest" class="solr.SpellCheckComponent" >
<lst name="spellchecker">
<str name="name">_all</str>
<str name="classname">org.apache.solr.spelling.suggest.Suggester</str>
<str name="lookupImpl">org.apache.solr.spelling.suggest.fst.FSTLookupFactory</str>
<str name="field">_all</str>
<float name="threshold">0.</float>
<str name="buildOnCommit">true</str>
</lst>
我在schema.xml中添加了这个。
<fields>
<field name="_all" type="string" indexed="true" stored="false" multiValued="true" omitNorms="true" />
</fields>
<types>
<fieldType name="string" class="solr.TextField">
<analyzer>
<tokenizer class="solr.KeywordTokenizerFactory" />
<filter class="solr.LowerCaseFilterFactory" />
<filter class="solr.TrimFilterFactory" />
</analyzer>
</fieldType>
</types>