繁体   English   中英

Solr-未检测到提示者自定义字段,并且多个字段不起作用

[英]Solr - Suggester custom field not detected & Multiple fields cannot work

目标

尝试在Solr中实现自动建议。 来自titlecontent字段的其他建议字段。

迄今为止的进展

我遵循了Solr官方指南来实现该功能,但是由于抱怨自定义字段suggestType尚未定义,因此停留了很长时间。

经过长时间的尝试,我决定将字段类型添加到managed-schema.xml中,而不是schema.xml中,并且可以正常工作!

到目前为止,它仅在我基于content的建议字段时才有效,但是,我们希望使用2个字段来基于建议字段titlecontent

遵循的步骤

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"/>

问题

  • 为什么仅在将自定义字段类型添加到managed-schema.xml而不是schema.xml时才起作用? 据我了解, managed-schema.xml不应手动编辑。
  • titlecontent字段都映射到自定义字段textSuggest之后,似乎没有任何结果出现。 我想知道我在想什么。

谢谢。

似乎您在复制字段定义中有错字。 “ dest”属性为suggestField,但您之前创建的字段称为suggestText

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM