FAQ

Q.dynamicFieldとはなんですか?

A.

Apache Solrのmanaged-schema.xmlにおいて、フィールドをdynamicFieldで設定すると、フィールド名に柔軟性を持たせる事ができます。具体例で説明しましょう。managed-schema.xmlで次のようなdynamicFieldを設定したとします。

   <dynamicField name="*_s"   type="string"  indexed="true"  stored="true" />
   <dynamicField name="*_sm"  type="string"  indexed="true"  stored="true" multiValued="true"/>

dynamicFieldのフィールド名(nameで指定)は、必ず上記のように アスタリスク(*) を1つ含むように設定します(フィールド名はアスタリスクで始まるかまたは終わるように指定)。そして、検索時やインデクシング時にフィールド名を次のように指定したとします。

(検索時にqパラメーターにクエリ式を指定)
q=domain_s:kandasearch.com

するとApache Solrでは、 domain_s というフィールド指定がなくても、dynamicFieldの最初の設定 name="*_s" がパターンマッチにより合致するので、indexed="true" で stored="true" のstring型と解釈されます。

同様に、次のような検索を行えば、tags_sm は複数の値を持つstring型である、と解釈してくれるようになります。

(検索時にqパラメーターにクエリ式を指定)
q=tags_sm:カラフル OR tags_sm:カッコイイ

お見積もり・詳細は KandaSearch チームに
お気軽にお問い合わせください。

お問い合わせ