2016-10-21 5 views
1

私はApache Solr Suggesterを自動補完用に使用しています。 「DC」で検索すると、他の値とともにDC-UK_ITPという応答が得られます。Solr Suggesterが含まれているテキスト -

DC-UK_ITPを検索すると、値を見つけることができず、提案が返されません。

DC-UK_ITPの値を正しく渡すことで、値を正しく見つけることができますか?

また、Solrの設定で必要な設定があります。

+0

は、あなたのアナライザは..theyを削除する必要があります使用し確認してください。 .itは役に立ちます –

答えて

0

"Suggester"は、索引付けされたフィールドに対応するトークン辞書から文字 "DC"で始まるトークンを単に検索します。この場合、トークン "DC-UK_ITP"を取得します。別のフィールドへのクエリを作成し、別の方法でインデックスを作成し、検索用語として "DC-UK_ITP"を使用します。この別の用語辞書(別のフィールドに対応)にはこの要素は含まれていません。

0

「提案者」コンポーネントを構成するとき、提案者がそのを構築し、「インデックス・タイム」で生産された値(

solrconfig.xml

<searchComponent name="suggest" class="solr.SuggestComponent"> 
    <lst name="suggester"> 
    <str name="name">mySuggester</str> 
    ... 
    <str name="suggestAnalyzerFieldType">suggest_type</str> 
    ... 
    </lst> 
</searchComponent> 
から「suggestAnalyzerFieldType」パラメータに目を維持することは常に重要ですデータ構造)は、「クエリ時」(基本的にクエリを発行するとき)に取得される値に対応して一致する必要があります。

考慮すると、あなた持っているのschema.xmlでセットアップを次

 "suggest_field": ["DC-UK_ITP"]
との文書には、以下の条件にインデックスに保存されます
<field name="suggest_field" type="suggest_type" indexed="true" stored="true" multiValued="true"/> 
<fieldType name="suggest_type" class="solr.TextField"> 
    <analyzer> 
    <tokenizer class="solr.StandardTokenizerFactory"/> 
    <filter class="solr.TrimFilterFactory" /> 
    <filter class="solr.LowerCaseFilterFactory" /> 
    </analyzer> 
</fieldType> 

: DC、uk_itp。私は次のようにAnalyzingInfixLookupFactory検索を考慮推薦ベースの提案者「を含む」持っているために

:中置検索を分析

<searchComponent name="suggest" class="solr.SuggestComponent"> 
    <lst name="suggester"> 
    <str name="name">infixSuggester</str> 
    <str name="lookupImpl">AnalyzingInfixLookupFactory</str> 
    <str name="dictionaryImpl">DocumentDictionaryFactory</str> 
    <str name="field">suggest_field</str> 
    <str name="weightField">price</str> 
    <str name="suggestAnalyzerFieldType">suggest_type</str> 
    <str name="buildOnStartup">false</str> 
    </lst> 
</searchComponent> 

も、あなたがある場合に非常に便利である応答でハイライトもたらしますそれを検索ボックスのUIから直接使用します。マッチング戦略は、あなたが任意の接頭辞で一致させることができますので、あなたがいずれかの方法で、元の "DC-UK_ITP" 値と一致することができるでしょう:

  • & suggest.dictionary = infixSuggester & suggest.q = DC
  • & suggest.dictionary = infixSuggester & suggest.q =英国
  • & suggest.dictionary = infixSuggester & suggest.q = DC-uk_itp

使用トピックに関するFUL資源: - DC-英国で追加...あなたが使用FIELDTYPEを共有することができれば

+0

下記のsolrconfigとスキーマのエントリを見つけてください: - –

+0

suggestMapName AnalyzingInfixLookupFactory \tを.............. ....... mapName_partial MAPNAME mapName_text mapName_text_suggest \t ......................

+0

私が理解していることから、solrconfig.xmlにはあなたが言及したのと同じ設定があります。 –

関連する問題