ゴールのSolr - 提案者のカスタムフィールドが検出されません&複数のフィールドは、Solrので、自動提案者を実装しようと
動作することはできません。余分な候補のフィールドはtitle
とcontent
フィールドです。
進歩は、これまで
は、私はそれがカスタムフィールドsuggestType
が定義されていないことを訴えてたとしてしかし、長い時間のために立ち往生して、機能を実装するために公式のSolrのガイドに従いました。私が代わりにのschema.xmlの管理-schema.xmlをにフィールドタイプを追加することを決定し、それが働いしようとの長い時間の後
!
これまでのところ、私は提案フィールドをcontent
に基づいていましたが、2フィールドを使ってtitle
とcontent
という2つのフィールドを使用したいと考えています。
手順
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) 'suggest' handl ER 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に両方のフィールド 'タイトル' と 'suggestText' から 'コンテンツ' にコピーします。
<copyField source="title" dest="suggestField"/>
<copyField source="content" dest="suggestField"/>
質問
- なぜカスタムフィールドタイプを追加すると機能するのですか?管理対象-schema.xml の代わりに schema.xml?私の理解から、managed-schema.xmlは手動で編集しないでください。
title
とcontent
の両方のフィールドをカスタムフィールドtextSuggest
にマップしても結果が表示されない場合があります。私は何が欠けているか知りたいです。
ありがとうございます。