【发布时间】:2015-08-25 20:06:52
【问题描述】:
我正在使用 Datastax 4.6。我的 solr 客户端使用 _uniqueKey 查询数据。从 4.6 版开始,删除了使用简单主键的限制。如何在 cassandra 中配置 solr 或创建表,以便在 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" ) 价值观 (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>
【问题讨论】:
-
"depId" 是您的唯一密钥,我在您的回复中看到了同样的信息。
-
我需要一种方法来配置 solr,以返回合成密钥及其值。与复合 PK 相同。正如您在简单 PK 中看到的那样,没有这样的信息(
标签: solr cassandra datastax datastax-enterprise