2017-06-30 12 views
0

ゴールのSolr - 提案者のカスタムフィールドが検出されません&複数のフィールドは、Solrので、自動提案者を実装しようと

動作することはできません。余分な候補のフィールドはtitlecontentフィールドです。

進歩は、これまで

は、私はそれがカスタムフィールドsuggestTypeが定義されていないことを訴えてたとしてしかし、長い時間のために立ち往生して、機能を実装するために公式のSolrのガイドに従いました。私が代わりにのschema.xml管理-schema.xmlをにフィールドタイプを追加することを決定し、それが働いしようとの長い時間の後

これまでのところ、私は提案フィールドをcontentに基づいていましたが、2フィールドを使ってtitlecontentという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は手動で編集しないでください。
  • titlecontentの両方のフィールドをカスタムフィールドtextSuggestにマップしても結果が表示されない場合があります。私は何が欠けているか知りたいです。

ありがとうございます。

答えて

0

コピーフィールドの定義に入力ミスがあるようです。 「dest」属性はsuggestFieldですが、先ほど作成したフィールドはsuggestTextと呼ばれています。

関連する問題