2016-05-25 5 views
0

は、私は、フィールドCOMPANY_NAMEは「Abibasスポーツ」に等しいであるドキュメントを検索する必要がある場合は、私のSolrのフィールドタイプSolr serach result distortionをほぼ同じクエリで修正するには?ここ


<fieldType name="company_name" class="solr.TextField" positionIncrementGap="100"> 
     <analyzer type="index"> 
      <tokenizer class="solr.StandardTokenizerFactory"/> 
      <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" /> 
      <filter class="solr.LowerCaseFilterFactory"/> 
     </analyzer> 
     <analyzer type="query"> 
      <tokenizer class="solr.ClassicTokenizerFactory"/> 
      <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" /> 
      <filter class="solr.LowerCaseFilterFactory"/> 
     </analyzer> 
    </fieldType> 

fq=company_name:Abibas Sportfq=company_name:Abibas Sportsリターン完全に異なる結果を照会します。最も適切なケースはfq=company_name:Abibas Sportです。

文字の問題を解決するには単語の最後にどうすればよいですか?結果はそれぞれ同じでなければならない。


まずクエリ:

first query result


2番目のクエリ:

second query result

答えて

0

solr.PorterStemFilterFactory

を使用して試してみてください

ポーターステマーは英語用です。

単語から共通のエンディングを削除する正規化プロセスです。あなたのケースでは

Example: "riding", "rides", "horses" ==> "ride", "ride", "hors". 

SportsはのをSport

+0

ありがとうございます!しかし私の場合、フィールドは英語だけではありません。 olr.PorterStemFilterFactoryを宣言すると、異なる言語のquaryに影響を与えますか? –

+0

それは可能性があります...しかし、あなたが得ている結果が何であれ、これは正しかったです...これはあなたがテキストを索引付けする方法であり、索引作成に基づいて結果を得るからです(索引付けの最後に作成されるトークン...) –

+0

または、他のオプションは、多くの言語がサポートされているそれらの多くのフィールドを作成し、可能であれば言語固有のステマーを適用する... –

関連する問題