Solr と Cassandra を (DSE 経由で) 使用しています。Cassandra のデータの 1 つのエントリ (行) を次に示します。
ORDER_INFO_CF
-orderHistoryID=1000072459
-SPECIAL_COLUMN_KEY=0800000002||1294034400000|113942
次の schema.xml を使用して、問題なく Cassandra データのインデックスを作成できます。
<schema name="ORDER_INFO_CF" version="1.1">
<types>
<fieldType name="string" class="solr.StrField"/>
<fieldType name="text" class="solr.TextField">
<analyzer><tokenizer class="solr.WikipediaTokenizerFactory"/></analyzer>
</fieldType>
</types>
<fields>
<field name="orderHistoryID" type="string" indexed="true" stored="true"/>
<field name="SPECIAL_COLUMN_KEY" type="text" indexed="true" stored="true"/>
</fields>
もちろん、すべてのデータをパイプで区切られた 1 つの文字列にまとめても、あまり役に立ちません。そこで、次のように PatternTokenizerFactory を使用して分割しようとしました (schema.xml):
<schema name="ORDER_INFO_CF" version="1.1">
<types>
<fieldType name="string" class="solr.StrField" />
<fieldType name="splitField" class="solr.TextField">
<analyzer><tokenizer class="solr.PatternTokenizerFactory" pattern="|" /></analyzer>
</fieldType>
</types>
<fields>
<field name="orderHistoryID" type="string" indexed="true" stored="true"/>
<field name="AccountNumber" type="splitField" indexed="true" stored="true"/>
<field name="ActionFlag" type="splitField" indexed="false" stored="true"/>
<field name="CreatedDate" type="splitField" indexed="true" stored="true"/>
<field name="CreatedTime" type="splitField" indexed="true" stored="true"/>
</fields>
orderHistoryID はまだマッピングされていますが、SPECIAL_COLUMN_KEY
値は上記の 4 つのフィールドに分割されていません。私は、PatternTokenizerFactory
. も見ましたDataImportHandler RegexTransformer
が、RDBMS と XML のインポートでのみ機能するようです。
基本的に、私のデータ マップは Solr では次のようになります。
orderHistoryID=1000072459
SPECIAL_COLUMN_KEY=0800000002||1294034400000|113942
そして、私はそれを次のようにマッピングしようとしています:
orderHistoryID=1000072459
AccountNumber=0800000002
ActionFlag=
CreatedDate=1294034400000
CreatedTime=113942
誰かが私を正しい方向に向けてもらえますか?