2012-02-08 9 views
5

は、複数のコア間schema.xmlで定義されたSolrのfieldType Sを共有することが可能ですか?複数のコア間でSolrフィールドタイプを共有するにはどうすればよいですか?

私はSolrの中のコアの数を持っているし、自分自身を再定義するだけで組み込みフィルタとトークナイザに基づいていますfieldType sのを見つけます。例えば

<fieldType name="exact" class="solr.TextField" positionIncrementGap="100"> 
    <analyzer type="index"> 
     <filter class="solr.LowerCaseFilterFactory"/> 
     <tokenizer class="solr.KeywordTokenizerFactory"/> 
    </analyzer> 
    <analyzer type="query"> 
     <filter class="solr.LowerCaseFilterFactory"/> 
     <tokenizer class="solr.KeywordTokenizerFactory"/> 
    </analyzer> 
</fieldType> 

私は私が自分自身のFieldクラスを作成し、コア間これを共有することができます知っているが、カスタムコードは、標準のフィルタを設定することになる際には、カスタムコードへの依存性を作成するために愚かなようです。より良い方法がありますか?上記の例は、(ストップワード及び文字変換などを設定)は、いくつかの他のものに比べて単純である

注意。

答えて

1

私はコア間fieldTypesを共有する方法を知りません。ただし、コアのスキーマがすべて同じ場合(同じフィールドとフィールドタイプなど)、複数のコア間で共有することができ、スキーマを1か所で更新するだけで済みます。設定の詳細については、このSolrユーザーメーリングリストの投稿:Sharing Schema with multiple coresを参照してください。 schema.xmlで「共通」の定義のようなFIELDTYPEを共有

+0

残念ながら、同じフィールドは共有されません。それを行うことは可能でしょう固定なら – beerbajay

+1

https://issues.apache.org/jira/browse/SOLR-3087?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanelを参照してください。だから最終的に;) – mrmuggles

2

、複数のコア間でsolrconfig.xmlはXIncludeを使用して可能です。

<?xml version="1.0" encoding="UTF-8" ?> 
<!-- common-types.xml --> 
<types> 
<fieldType name="exact" class="solr.TextField" positionIncrementGap="100"> 
    <analyzer type="index"> 
     <filter class="solr.LowerCaseFilterFactory"/> 
     <tokenizer class="solr.KeywordTokenizerFactory"/> 
    </analyzer> 
    <analyzer type="query"> 
     <filter class="solr.LowerCaseFilterFactory"/> 
     <tokenizer class="solr.KeywordTokenizerFactory"/> 
    </analyzer> 
</fieldType> 
</types> 

、以下のようなあなたのschema.xmlでそれを使用します。

<schema version="1.1"> 
    <types> 
    <!-- Other types here --> 
    </types> 
    <xi:include href="file:/path/to/common-types.xml" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include> 
</schema> 

お知らせ:含まれたXMLファイルは、単一のルートノードでなければなりません。

関連する問題