2017-05-31 2 views
0

単語とそのフルnGramsで検索:検索クエリがあるSolrの:私は2つの文書で、次のような特徴をしている

1: name: "John Oliver W Clane" 
2: name: "John Oliver Wayne" 

場合q=john、1と2が表面化すべきです。クエリがq=john oliの場合、1と2が表示されます。しかし、クエリがq=wayneの場合は、2つしか表示されません。クエリがq=oliver wの場合、1と2の両方が表示されます。

基本的に、名前のすべての単語をエッジから検索する必要があります。 これをsolrでどのように設定すればよいですか?

注:nameがインデックスに登録されています。

答えて

2

あなたのフィールドタイプを試すことができます。フィールドname

<analyzer> 
    <tokenizer class="solr.KeywordTokenizerFactory"/> 
    <filter class="solr.EdgeNGramFilterFactory" minGramSize="4" maxGramSize="25"/> 
</analyzer> 

入力文字列:"John Oliver W Clane"

トークナイザフィルターする:"John Oliver W Clane"

出力トークン:

"John", "John ", "John O", "John Ol", "John Oli", "John Oli", "John Oliv", "John Olive", "John Oliver", "John Oliver ", "John Oliver W", "John Oliver W " 
, "John Oliver W C", "John Oliver W Cl", "John Oliver W Cla", "John Oliver W Clan", "John Oliver W Clane". 

をあなたが同じことを試みることができる別のフィルタがあります。

<filter class="solr.NGramFilterFactory" minGramSize="4" maxGramSize="25"/> 

ここでは、アナライザとフィルタについて詳しく読むことができます。 Solr analyzers and filters

+0

ありがとうございました。私はこれらのソリューションをチェックしています。 – Vivek

関連する問題