(望ましくない動作の可能性を知らせるために、ここに回答を追加します)
参考までに、 に変更を加えると、アプリケーション内のすべてのインデックス付きテキスト フィールドの構成が変更さ"text" fieldType
れます。一部のフィールドにはカスタム構成が必要なため、これが望ましくない場合があります。schema.xml
たとえば、(何らかの理由で) 名前を他のテキスト フィールドとは異なる方法で扱いたいとします。名の同義語を追加したいとしましょう。最初に、呼び出し先で新しいfieldType
を作成しますschema.xml
first_name
<fieldtype name="first_name" class="solr.TextField" positionIncrementGap="100">
<analyzer>
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/>
</analyzer>
</fieldtype>
次にfields
、ファイルのセクションに、schema.xml
2 つの新しい動的フィールドを追加します。
<dynamicField name="*_first_name" stored="false" type="first_name" multiValued="false" indexed="true"/>
<dynamicField name="*_first_names" stored="true" type="first_name" multiValued="false" indexed="true"/>
注: 名前の「s」dynamicField
は、それが格納された型であることを示します。動的フィールドに * を指定すると、太陽黒点の構成に役立ちます
したがって、searchable
ブロックで次のことができるようになりました。
searchable do
text :firstname, :as => :user_first_name
text :lastname, :login, :mail
boolean :member
integer :status
end
これで、カスタム構成"first_name"
フィールドが使用されます。
first_name を保存された値にしたい (そしてカスタム構成を使用したい) 場合は、次のように検索可能なブロックを実装します。
searchable do
text :firstname, :stored => true, :as => :user_first_names
text :lastname, :login, :mail
boolean :member
integer :status
end