2017-07-07 13 views
0

をインデックス化されていない地図列を持っている場合、私はタイプの列冷凍<地図<テキスト、テキスト>>を持っDSEカサンドラテーブルを持ってSolrにインデックスされません。 DSE Search Solrでテーブルのインデックスを作成しようとしたとき、私は上記のMapカラムをインデックス化しませんでした。 NULLフリーズしたレコード< Map <テキスト、テキスト>は、Solrでインデックス付けされ、VALUEを持つレコードはインデックスに登録されません。録音はそれも

DSEの検索ドキュメントのとおり、Indexing frozen maps is not supportedです。

しかし、固定された列はまったく索引付けされていません(下のschema.xmlを参照してください)。そのC *テーブルのすぐそこにあります。ここで

は、作成したキースペース

cqlsh> CREATE KEYSPACE arun 
      WITH REPLICATION = { 
      'class' : 'SimpleStrategy', 
      'replication_factor' : 1 }; 

cqlsh> use arun 

を作成し

cqlsh:arun> create table employee ( 
      emp_id int, 
      emp_name string, 
      emp_dept string, 
      emp_dob string, 
      unique_identifier frozen<map<text, text>>, 
      primary key (emp_id, emp_name)); 

作成されたSolrのコア

カサンドラの表問題を再現する手順は、生成された
$./dsetool create_core arun.employee generateResources=true coreOptionsInline=include_columns:emp_id,emp_name,emp_dept 

オート:schema.xmlを

<schema name="autoSolrSchema" version="1.5"> 
    <types> 
    <fieldType class="org.apache.solr.schema.TrieIntField" name="TrieIntField"/> 
    <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.StrField" name="StrField"/> 
    </types> 
    <fields> 
    <field docValues="true" indexed="true" multiValued="false" name="emp_id" stored="true" type="TrieIntField"/> 
    <field indexed="true" multiValued="false" name="emp_dept" stored="true" type="TextField"/> 
    <field indexed="true" multiValued="false" name="emp_name" stored="true" type="StrField"/> 
    </fields> 
    <uniqueKey>(emp_id,emp_name)</uniqueKey> 
</schema> 

カサンドラ表に挿入されたレコード

cqlsh> insert into arun.employee 
(emp_id, emp_name, emp_dept, emp_dob) values 
(1,'arun chan','et','19790101', 
     {'emp_dept': 'et', 'emp_id': '1', 'emp_name': 'arun chan'}); 

cqlsh> insert into arun.employee 
(emp_id, emp_name, emp_dept, emp_dob) values 
(2,'mritula chan','ml','19840101'); 

cqlsh> insert into arun.employee 
(emp_id, emp_name, emp_dept, emp_dob, unique_identifier) values 
(3,'jaya guru','ph','19870101', 
     {'emp_id' : '3', 'emp_name' : 'jaya guru', 'emp_dept' : 'ph'}); 

カサンドラ問合せ:

挿入された3行を返します。
cqlsh> select * from arun.employee; 

emp_id | emp_name  | emp_dept | emp_dob | solr_query | unique_identifier 
--------+--------------+----------+----------+------------+------------------------------------------------------------ 
     1 | arun chan |  et | 19790101 |  null | {'emp_dept': 'et', 'emp_id': '1', 'emp_name': 'arun chan'} 
     2 | mritula chan |  ml | 19840101 |  null |              null 
     3 | jaya guru |  ph | 19870101 |  null | {'emp_dept': 'ph', 'emp_id': '3', 'emp_name': 'jaya guru'} 

(3 rows) 

問題:DSE Solrのクエリは、オンリーワンを返しないのはなぜ?

cqlsh> select json * from arun.employee where solr_query = '{"q":"*:*"}'; 

[json] 
----------------------------------------------------------------------------------------------------------------------------------- 
{"emp_id": 2, "emp_name": "mritula chan", "emp_dept": "ml", "emp_dob": "19840101", "solr_query": null, "unique_identifier": null} 

(1 rows) 

答えて

0

Datastaxのサポートは、これは既知の問題であると述べました。ここで

は、内部欠陥追跡番号、

DSP-13997である:非は黙っ

をerroring、凍結マップをインデックス化