2017-11-10 10 views
0

私はSolrのドキュメントがあります。SpringブートでSolrフィールドのtokenizerを設定する方法は?

@SolrDocument(solrCoreName = "mydocument") 
public class MyDocument { 


    @Indexed(name = "email", type = "text_general") 
    private String email; 

    ... 
} 

をそして私は、私は[email protected]*のように電子メールで検索するとき、私は問題を抱えているbeacuse Keyword Tokenizerでこのフィールドのトークナイザを設定したいです。

どうすればいいですか?

答えて

2

春ブーツは、これらの設定を制御できません(それはSchemaと呼ばれています)

あなたは既にemail命名されるように、フィールドemailをマークし、text_generalのフィールドタイプを持っていました。このフィールドを使用して索引付け/検索のプロセスに関連するものを変更するには、schema.xmlまたはmanaged-schema(設定に応じて)を更新し、fieldType定義を変更する必要があります。以下は

が標準text_general定義である、あなたはsolr.KeywordTokenizerFactoryにここsolr.StandardTokenizerFactoryを変更することができます(ただし、私はむしろ、この特定の電子メールフィールドに新しいfieldTypeを作成することをお勧めします。

<fieldType name="text_general" class="solr.TextField" positionIncrementGap="100"> 
    <analyzer type="index"> 
    <tokenizer class="solr.StandardTokenizerFactory"/> 
    <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" /> 
    <!-- in this example, we will only use synonyms at query time 
    <filter class="solr.SynonymFilterFactory" synonyms="index_synonyms.txt" ignoreCase="true" expand="false"/> 
    --> 
    <filter class="solr.LowerCaseFilterFactory"/> 
    </analyzer> 
    <analyzer type="query"> 
    <tokenizer class="solr.StandardTokenizerFactory"/> 
    <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" /> 
    <filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/> 
    <filter class="solr.LowerCaseFilterFactory"/> 
    </analyzer> 
</fieldType> 
+0

おかげで、男を!:) –

関連する問題