2012-04-02 21 views
1

私は現在、Webshopの検索エンジンとしてSolrを実装しています。ほとんどの製品が発見された、しかし1位置づけるは私に問題を与えている:WordDelimiterFilterFactoryとハイフンでテキストを入力しても希望の結果が得られません

私は、次のフィールドがあります。PANASONIC HC-V500

は、私が上の検索:このフィールドにテキストを次

<fieldType name="text" class="solr.TextField" positionIncrementGap="100"> 
    <analyzer type="index"> 
    <tokenizer class="solr.WhitespaceTokenizerFactory"/> 
    <filter class="solr.WordDelimiterFilterFactory" 
      splitOnCaseChange="1" splitOnNumerics="1" 
      generateWordParts="1" generateNumberParts="1" 
      catenateWords="1" catenateNumbers="1" catenateAll="1" 
      preserveOriginal="1" 
      /> 
    <filter class="solr.LowerCaseFilterFactory"/> 
    <filter class="solr.LengthFilterFactory" min="2" max="60"/> 
    </analyzer> 
    <analyzer type="query"> 
    <tokenizer class="solr.WhitespaceTokenizerFactory"/> 
    <filter class="solr.WordDelimiterFilterFactory" 
      splitOnCaseChange="1" splitOnNumerics="1" 
      generateWordParts="0" generateNumberParts="0" 
      catenateWords="1" catenateNumbers="1" catenateAll="1" 
      preserveOriginal="1" 
      /> 
    <tokenizer class="solr.StandardTokenizerFactory"/> 
    <filter class="solr.LowerCaseFilterFactory"/> 
    <filter class="solr.LengthFilterFactory" min="2" max="60"/> 
    </analyzer> 
</fieldType> 

Iインデックスを次の用語:v500。文書が発見された

結果:文書が、私は優れた「フィールド解析」を使用し、だから、自然に

を発見していないツール、クエリの種類がDismaxで、最小一致は1

所望の結果に設定されています。

http://i.imgur.com/VV26p.png

私の質問:

  1. このような状況では用語 'V500' をSolrのインデックスを作成する方法はありますこれは私に次のような結果を与えましたか?

  2. フィールド分析の結果、ドキュメントが一致した(「500」上)という印象を与えましたが、返されませんでした。どのようにこれを説明することができますか?

explainOtherと私のdebugQueryは、次のような結果が返さ

0.0 = (NON-MATCH) Failure to meet condition(s) of required/prohibited clause(s) 

0.0 = no match on required clause (products_model:"v500 (500 v500)") 

0.0 = (NON-MATCH) weight(products_model:"v500 (500 v500)" in 20538), product of: 

    0.99999994 = queryWeight(products_model:"v500 (500 v500)"), product of: 

    26.309225 = idf(products_model: v500=2 500=76 v500=2) 

    0.03800948 = queryNorm 

    0.0 = (NON-MATCH) fieldWeight(products_model:"v500 (500 v500)" in 20538), product of: 

    0.0 = tf(phraseFreq=0.0) 

    26.309225 = idf(products_model: v500=2 500=76 v500=2) 

    0.5 = fieldNorm(field=products_model, doc=20538) 

答えて

関連する問題