カスタムスキーマ例
このセクションでは、コンプリートスキーマを説明します。インフォセクションではElasticsearch オブジェクトのリレーショナルビューを可能にします。詳細はカスタムスキーマ定義 を参照してください。 次のテーブルはSELECT コマンドのみをサポートしています。INSERT、UPDATE、およびDELETE コマンドは現在サポートされていません。
es_index およびes_type 属性を使って、Elasticsearch タイプの名前と、取得およびパースしたいインデックスを指定します。es_index およびes_index 属性を使って、同じElasticsearch タイプに対して複数のスキーマを定義することができます。
es_type が指定されていない場合、ファイル名がパースされるElasticsearch タイプを決定します。
スキーマにrows@next input をas-is でコピーします。
elasticsearchadoSelect のような操作は内部実装で、そのままコピーができます。
<rsb:script xmlns:rsb="http://www.rssbus.com/ns/rsbscript/2">
<rsb:info title="StaticInsured" description="Elasticsearch にinsure されたデータセットのCustom Schema。">
<!-- Column definitions -->
<attr name="_id" xs:type="string" other:xPath="_id" other:sourceField="_id" other:analyzed="true" />
<attr name="_score" xs:type="double" other:xPath="_score" other:sourceField="_score" other:analyzed="true" />
<attr name="name" xs:type="string" other:xPath="_source/name" other:sourceField="name" other:analyzed="true" />
<attr name="address.street" xs:type="string" other:xPath="_source/address/street" other:sourceField="address.street" other:analyzed="true" />
<attr name="address.city" xs:type="string" other:xPath="_source/address/city" other:sourceField="address.city" other:analyzed="true" />
<attr name="address.state" xs:type="string" other:xPath="_source/address/state" other:sourceField="address.state" other:analyzed="true" />
<attr name="insured_ages" xs:type="string" other:xPath="_source/insured_ages" other:valueFormat="aggregate" other:sourceField="insured_ages" other:analyzed="false" />
<attr name="insured_ages.0" xs:type="integer" other:xPath="_source/insured_ages[0]" other:sourceField="insured_ages" other:analyzed="false" />
<attr name="vehicles" xs:type="string" other:xPath="_source/vehicles" other:valueFormat="aggregate" other:sourceField="vehicles" other:analyzed="true" />
<attr name="vehicles.0.year" xs:type="integer" other:xPath="_source/vehicles[0]/year" other:sourceField="vehicles.year" other:analyzed="true" />
<attr name="vehicles.0.make" xs:type="string" other:xPath="_source/vehicles[0]/make" other:sourceField="vehicles.make" other:analyzed="true" />
<attr name="vehicles.0.model" xs:type="string" other:xPath="_source/vehicles[0]/model" other:sourceField="vehicles.model" other:analyzed="true" />
<attr name="vehicles.0.body_style" xs:type="string" other:xPath="_source/vehicles[0]/body_style" other:sourceField="vehicles.body_style" other:analyzed="true" />
<input name="rows@next" desc="データのページングに使われる内部属性。" />
</rsb:info>
<rsb:set attr="es_index" value="auto"/>
<rsb:set attr="es_type" value="insured"/>
<rsb:script method="GET">
<rsb:call op="elasticsearchadoSelect">
<rsb:push/>
</rsb:call>
</rsb:script>
<rsb:script method="POST">
<rsb:call op="elasticsearchadoModify">
<rsb:push/>
</rsb:call>
</rsb:script>
<rsb:script method="MERGE">
<rsb:call op="elasticsearchadoModify">
<rsb:push/>
</rsb:call>
</rsb:script>
<rsb:script method="DELETE">
<rsb:call op="elasticsearchadoModify">
<rsb:push/>
</rsb:call>
</rsb:script>
</rsb:script>