2016-12-01 7 views
0

私はDSE/Solrを初めて使用しており、Field Transformerを使用してCassandraテーブルのregular/jsonフィールドのインデックスを作成しようとしています。両方の入出力変圧器の作業者がうまくいて、私はSolr管理UIを使用して検索/フィルタリングすることができます。しかし、私はそれを次のエラーで失敗するCQLから同じものを実行しようとすると。私は5.0.3DSE solrクエリがCQLから機能しない

ServerError: Error while creating field '_uniqueKey{type=cql3CompositeKey_str,properties=indexed,stored,omitNorms,omitTermFreqAndPositions,docValues, required=true}' from value 'null'

Query: select party_id from custshard_ne_interface where solr_query='{"q":":","fq":"businesskey:10.10.2.15,NA,NA,NA,3"}';

のSchema.xml DSEを使用しています:

<?xml version="1.0" encoding="UTF-8" standalone="no"?> 
 
<schema name="autoSolrSchema" version="1.5"> 
 
<types> 
 
<fieldType class="org.apache.solr.schema.TrieLongField" name="TrieLongField"/> 
 
<fieldType class="org.apache.solr.schema.StrField" name="StrField"/> 
 
<fieldType class="org.apache.solr.schema.TextField" name="TextField"> 
 
<analyzer> 
 
<tokenizer class="solr.StandardTokenizerFactory"/> 
 
<filter class="solr.LowerCaseFilterFactory"/> 
 
</analyzer> 
 
</fieldType> 
 
<fieldType class="org.apache.solr.schema.UUIDField" name="UUIDField"/> 
 
</types> 
 
<fields> 
 
<field indexed="true" multiValued="false" name="party_id" stored="true" required="true" type="StrField" omitNorms="true" omitTermFreqAndPositions="true" docValues="true"/> 
 
<field indexed="true" multiValued="false" name="sh_coll_uuid" stored="true" required="true" type="UUIDField" omitNorms="true" omitTermFreqAndPositions="true" docValues="true"/> 
 
<field indexed="true" multiValued="false" name="ne_id" stored="true" required="true" type="StrField" omitNorms="true" omitTermFreqAndPositions="true" docValues="true"/> 
 
<field indexed="true" multiValued="false" name="businesskey" stored="true" required="true" type="StrField" omitNorms="true" omitTermFreqAndPositions="true" docValues="true"/> 
 
<field indexed="true" multiValued="false" name="clctor_id" stored="true" type="StrField"/> 
 
<field indexed="true" multiValued="false" name="ifc_json" stored="true" type="StrField"/> 
 
<field indexed="true" multiValued="false" name="neIpAddress" stored="false" type="StrField"/> 
 
<field indexed="true" multiValued="false" name="neHostName" stored="false" type="StrField"/> 
 
<field indexed="true" multiValued="false" name="ifcName" stored="false" type="StrField"/> 
 
<field indexed="true" multiValued="false" name="ifcType" stored="false" type="StrField"/> 
 
<field indexed="true" multiValued="false" name="ipAddress" stored="false" type="StrField"/> 
 
<field indexed="true" multiValued="false" name="macAddress" stored="false" type="StrField"/> 
 
<field indexed="true" multiValued="false" name="ipMask" stored="false" type="StrField"/> 
 
</fields> 
 
<uniqueKey>(party_id,sh_coll_uuid,ne_id,businesskey)</uniqueKey> 
 
</schema>

おかげで、事前に

答えて

0

が最後になった、それは自動を追加することによって、働いていたが一部として、フィールド_uniqueKeyを生成しましたコンポジットキーの値を文字列配列として持つFieldOutputTransformerの一覧

0

申し訳ありませんが、私は実際にトランスを使用せず、UDTのネイティブでこれを行うことをお勧めします。添付のブログ記事を参照してください - それははるかに簡単です。 https://www.datastax.com/dev/blog/json-and-dse-search

関連する問題