0
我正在開發一個web應用程序,並且使用Solr作爲搜索引擎。我想添加自動完成功能。爲此,我添加了Suggester組件,併爲其配置了一個單獨的字段。這工作正常。從Solr返回單個詞建議
問題是Suggestedter返回字段的整個值。例如,如果一篇文章的名稱是「具有新聞價值的項目」,並且我搜索「新的」,它將返回整個「具有新聞價值的項目」,我希望它只返回「新聞價值」。換句話說,返回單個單詞標記。
的模式是這樣的:
<fieldType name="text_autocomplete" class="solr.TextField" positionIncrementGap="100">
<analyzer>
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>
<field name="term" type="text_autocomplete" indexed="true" stored="true" multiValued="false" />
<field name="weight" type="float" indexed="true" stored="true" />
<copyField source="name" dest="term"/>
的值複製到「項」字段。 Solr配置:
<!-- Search component -->
<searchComponent name="suggest" class="solr.SuggestComponent">
<lst name="suggester">
<str name="name">suggester</str>
<str name="lookupImpl">AnalyzingLookupFactory</str>
<str name="dictionaryImpl">DocumentDictionaryFactory</str>
<str name="field">term</str>
<str name="weightField">weight</str>
<str name="suggestAnalyzerFieldType">text_autocomplete</str>
<str name="buildOnStartup">false</str>
</lst>
</searchComponent>
<!-- Search handler -->
<requestHandler name="/suggest" class="solr.SearchHandler" startup="lazy">
<lst name="defaults">
<str name="suggest">true</str>
<str name="suggest.count">10</str>
<str name="suggest.dictionary">suggester</str>
<str name="suggest.build">true</str>
</lst>
<arr name="components">
<str>suggest</str>
</arr>
</requestHandler>
任何人都可以建議一個架構和/或配置,使建議者返回一個單詞嗎?
這很好,謝謝! – Knut