我正在使用Datastax 4.6。我的solr客户端使用_uniqueKey查询数据。从版本4.6开始,删除了使用简单主键的限制。如何在cassandra中配置solr或create table,以便在solr响应中收到有关合成密钥_uniqueKey的信息。使用复合键时没有问题,只有简单。
DROP TABLE IF EXISTS unitable;
CREATE TABLE IF NOT EXISTS unitable (
"depId" INT PRIMARY KEY,
"parentId" INT,
"name" text
);
INSERT INTO unitable(“depId”,“parentId”,“name”) VALUES (689,2,'测试');
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<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>
</types>
<fields>
<field indexed="true" multiValued="false" name="depId" stored="true" type="TrieIntField"/>
<field indexed="true" multiValued="false" name="name" stored="true" type="TextField"/>
<field indexed="true" multiValued="false" name="parentId" stored="true" type="TrieIntField"/>
</fields>
<uniqueKey>depId</uniqueKey>
</schema>
没有_uniqueKey作为回应
<response>
<lst name="responseHeader">
<int name="status">0</int>
<int name="QTime">5</int>
</lst>
<result name="response" numFound="1" start="0" maxScore="1.0">
<doc>
<int name="depId">689</int>
<str name="name">test</str>
<int name="parentId">2</int></doc>
</result>
</response>
答案 0 :(得分:0)
仅在使用复合键时生成并返回合成_uniqueKey字段;在简单键的情况下,直接使用键字段。