[英]Solr - Suggester custom field not detected & Multiple fields cannot work
目标
尝试在Solr中实现自动建议。 来自title
和content
字段的其他建议字段。
迄今为止的进展
我遵循了Solr官方指南来实现该功能,但是由于抱怨自定义字段suggestType
尚未定义,因此停留了很长时间。
经过长时间的尝试,我决定将字段类型添加到managed-schema.xml中,而不是schema.xml中,并且可以正常工作!
到目前为止,它仅在我基于content
的建议字段时才有效,但是,我们希望使用2个字段来基于建议字段title
和content
。
遵循的步骤
1)在托管模式 xml中添加自定义字段类型:
<fieldType name="suggestType" class="solr.TextField" positionIncrementGap="100">
<analyzer>
<charFilter class="solr.PatternReplaceCharFilterFactory" pattern="[^a-zA-Z0-9]" replacement=" " />
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>
2)在schema.xml中添加使用自定义字段类型的自定义字段:
<field name="suggestText" type="suggestType" stored="true" indexed="true" />
3)在solr-config.xml中添加“建议”处理程序:
<searchComponent name="suggest" class="solr.SuggestComponent">
<lst name="suggester">
<str name="name">fuzzySuggester</str>
<str name="lookupImpl">FuzzyLookupFactory</str>
<str name="storeDir">fuzzy_suggestions</str>
<str name="dictionaryImpl">DocumentDictionaryFactory</str>
<str name="field">suggestText</str>
<str name="suggestAnalyzerFieldType">suggestType</str>
<str name="buildOnStartup">false</str>
<str name="buildOnCommit">false</str>
</lst>
</searchComponent>
<requestHandler name="/suggest" class="solr.SearchHandler" startup="lazy" >
<lst name="defaults">
<str name="suggest">true</str>
<str name="suggest.dictionary">analyzingSuggester</str>
<str name="suggest.onlyMorePopular">true</str>
<str name="suggest.count">10</str>
<str name="suggest.collate">true</str>
</lst>
<arr name="components">
<str>suggest</str>
</arr>
</requestHandler>
4)将schema.xml中的两个字段“ title”和“ content”都复制到“ suggestText”:
<copyField source="title" dest="suggestField"/>
<copyField source="content" dest="suggestField"/>
问题
title
和content
字段都映射到自定义字段textSuggest
之后,似乎没有任何结果出现。 我想知道我在想什么。 谢谢。
似乎您在复制字段定义中有错字。 “ dest”属性为suggestField,但您之前创建的字段称为suggestText 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.