Solr:针对特定自动完成的多个建议
我有以下问题: 我有一个Solr core和多个索引。例如,我的网站上有3种不同的搜索类型:Solr:针对特定自动完成的多个建议,solr,autocomplete,autosuggest,Solr,Autocomplete,Autosuggest,我有以下问题: 我有一个Solr core和多个索引。例如,我的网站上有3种不同的搜索类型: 汽车 DVD 所有项目(汽车、DVD和其他项目) 我有3号的自动建议。1和2到目前为止还没有任何建议。但我想为汽车安装一个额外的suggester,这样当我只想在汽车中搜索时,suggester会向我显示只属于汽车的单词,而不是DVD等。我正在考虑新的requestHandler并执行搜索,因为我需要这两个特定字段来填充建议,其中Nr.3搜索是通过字典自动填充的。 在一个Solr核心中是否可能有两个或多
在一个Solr核心中是否可能有两个或多个不同的建议?对于自动完成和建议,如何使用特定搜索类型的特定字段,以便在这些建议中只列出汽车属性?当然可以。只需设置如下两个搜索组件:
<searchComponent name="suggest" class="solr.SuggestComponent">
<lst name="suggester">
<str name="name">suggest_cars</str>
<str name="lookupImpl">BlendedInfixLookupFactory</str>
<str name="blenderType">linear</str>
<str name="dictionaryimpl">DocumentDictionaryFactory</str>
<str name="field">cars_suggest</str>
<str name="weightField">popularity</str>
<str name="suggestAnalyzerFieldType">text_suggest</str>
<str name="queryAnalyzerFieldType">phrase_suggest</str>
<str name="indexPath">cars_suggest</str>
<str name="buildOnStartup">false</str>
<str name="buildOnCommit">false</str>
<bool name="exactMatchFirst">true</bool>
</lst>
<lst name="suggester">
<str name="name">suggest_all</str>
<str name="lookupImpl">BlendedInfixLookupFactory</str>
<str name="blenderType">linear</str>
<str name="dictionaryimpl">DocumentDictionaryFactory</str>
<str name="field">suggest</str>
<str name="weightField">popularity</str>
<str name="suggestAnalyzerFieldType">text_suggest</str>
<str name="queryAnalyzerFieldType">phrase_suggest</str>
<str name="indexPath">all_suggest</str>
<str name="buildOnStartup">false</str>
<str name="buildOnCommit">false</str>
<bool name="exactMatchFirst">true</bool>
</lst>
这太棒了。成功了!非常感谢你,詹姆斯:)虽然我在字典和过滤器上做了一些不同的配置,因为视图和外观对我来说不是最优的。但功能正是我所需要的:)谢谢James,对于所有的新手,这里的问题是两个不同字段的索引路径不同,在数据目录中,将使用针对indexpath给定的名称创建文件夹。如果使用相同的目录,则对于第二个组件,solr将无法创建所需的文件bcz of write.lock
<requestHandler name="/suggest" class="solr.SearchHandler" startup="lazy">
<lst name="defaults">
<str name="echoParams">all</str>
<str name="wt">json</str>
<str name="indent">false</str>
<str name="suggest">true</str>
<str name="suggest.count">10</str>
</lst>
<arr name="components">
<str>suggest</str>
</arr>
</requestHandler>
<fieldType name="phrase_suggest" class="solr.TextField" positionIncrementGap="100">
<analyzer>
<tokenizer class="solr.KeywordTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.TrimFilterFactory"/>
</analyzer>
</fieldType>
<fieldType name="text_suggest" class="solr.TextField" positionIncrementGap="100">
<analyzer>
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.ASCIIFoldingFilterFactory"/>
<filter class="solr.EnglishPossessiveFilterFactory"/>
</analyzer>
</fieldType>
http://localhost:8983/solr/collection0/suggest?q=peug&suggest.dictionary=suggest_cars