をインデックス化されていない地図列を持っている場合、私はタイプの列冷凍<地図<テキスト、テキスト>>を持っ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)