sor学習之-Field、CopyField、DynamicField
3368 ワード
上の一節に7、8スロットがあります。FieldTypeについて話してみました。 実は簡単に考えられます。FieldTypeは私達がJavaでカスタムしたタイプのようです。
Field:
Fieldはフィールドです。Fieldを定義するのは簡単です。
CopyField(この内容は直接sor中国語網copyから来る):
複数のフィールドを複数回使えるようにしたいかもしれません。ソロはフィールドコピー機構があり、複数の異なるタイプのフィールドを一つのフィールドに集中させることができる。フィールドコピーは主に2つの概念に関連しています。sourceとdestination、もう一つはコピーするフィールド、もう一つはどのフィールドにコピーするべきですか?以下は例です。
1
上記の例では、textフィールドにデータがあれば、catフィールドの内容はtextフィールドに追加されます。maxCharsパラメータは、コピーされた文字の数を制限するためのintタイプパラメータです。
sourceとdestinationはすべてワイルドカードをサポートします。以下は一つで全てを_にします。t最後のフィールドをすべてテキストフィールドにコピーします。
1
。注意:destが複数のsourceから構成される場合、multiValuedに指定する必要があります。
インターネットで例を探しました。
Dynamic Field:
ダイナミックフィールド(Dynamic fields)は、schemaにおいて明示的に定義されたフィールドがないことを可能にする。これはいくつかのフィールドの定義を忘れた時に役に立ちます。動的フィールドは、システムをより柔軟にし、汎用性をより強くすることができる。
ダイナミックフィールドは従来のフィールドと同様で、名前にはワイルドカードが含まれているほか、索引ドキュメントでは従来のフィールドにマッチしていない場合はダイナミックフィールドにマッチします。
schemaの中で一つの名前が定義されていると仮定します。iのダイナミックフィールドで、索引を作るならコストゲといいます。iのフィールドですが、schemaにはcot_は存在しません。iのフィールドは、このようにcot_i を**_にインデックスしますiフィールドにあります。
ダイナミックフィールドもschema.xmlファイルで定義されています。他のフィールドと同様に名詞、フィールドタイプ、属性もあります。
1
Field:
Fieldはフィールドです。Fieldを定義するのは簡単です。
<field name="price" type="sfloat" indexed="true" stored="true"/>
基本的にプロパティもFieldTypeと似ていますが、彼の属性はFieldTypeの同名の属性をカバーします。CopyField(この内容は直接sor中国語網copyから来る):
複数のフィールドを複数回使えるようにしたいかもしれません。ソロはフィールドコピー機構があり、複数の異なるタイプのフィールドを一つのフィールドに集中させることができる。フィールドコピーは主に2つの概念に関連しています。sourceとdestination、もう一つはコピーするフィールド、もう一つはどのフィールドにコピーするべきですか?以下は例です。
1
<
copyField
source
=
"cat"
dest
=
"text"
maxChars
=
"30000"
/>
上記の例では、textフィールドにデータがあれば、catフィールドの内容はtextフィールドに追加されます。maxCharsパラメータは、コピーされた文字の数を制限するためのintタイプパラメータです。
sourceとdestinationはすべてワイルドカードをサポートします。以下は一つで全てを_にします。t最後のフィールドをすべてテキストフィールドにコピーします。
1
<
copyField
source
=
"*_t"
dest
=
"text"
maxChars
=
"25000"
/>
実は簡単な話です。例えば、Javaを含むブログを調べたら、必ず内容を調べてください。タイトルはJavaを含んでいますか?しかし、sourはSQLのように、where tittle like%Java% or content like'%Java'. この時、copyFieldは役に立ちます。新しいフィールドを定義して、titleとcontentをこの新しいフィールドにコピーします。インデックスを作る時、直接にこの新しいフィールドから検索します。これで目的地に着きます。 これはcopyFieldの典型的な応用シーンです。 。注意:destが複数のsourceから構成される場合、multiValuedに指定する必要があります。
インターネットで例を探しました。
<schema name="eshequn.post.db_post.0" version="1.1"
xmlns:xi="http://www.w3.org/2001/XInclude">
<fields>
<!-- for title -->
<field name="t" type="text" indexed="true" stored="false" />
<!-- for abstract -->
<field name="a" type="text" indexed="true" stored="false" />
<!-- for title and abstract -->
<field name="ta" type="text" indexed="true" stored="false" multiValued="true"/>
</fields>
<copyField source="t" dest="ta" />
<copyField source="a" dest="ta" />
</schema>
Dynamic Field:
ダイナミックフィールド(Dynamic fields)は、schemaにおいて明示的に定義されたフィールドがないことを可能にする。これはいくつかのフィールドの定義を忘れた時に役に立ちます。動的フィールドは、システムをより柔軟にし、汎用性をより強くすることができる。
ダイナミックフィールドは従来のフィールドと同様で、名前にはワイルドカードが含まれているほか、索引ドキュメントでは従来のフィールドにマッチしていない場合はダイナミックフィールドにマッチします。
schemaの中で一つの名前が定義されていると仮定します。iのダイナミックフィールドで、索引を作るならコストゲといいます。iのフィールドですが、schemaにはcot_は存在しません。iのフィールドは、このようにcot_i を**_にインデックスしますiフィールドにあります。
ダイナミックフィールドもschema.xmlファイルで定義されています。他のフィールドと同様に名詞、フィールドタイプ、属性もあります。
1
<
dynamicField
name
=
"*_i"
type
=
"sint"
indexed
=
"true"
stored
=
"true"
/>
schema.xmlでは、拡張のためのいくつかの基本的なダイナミックフィールドを定義することを推奨します。