【问题标题】:dse cassandra solr doesnt return _uniqueKey in responsedse cassandra solr 不返回 _uniqueKey 作为响应
【发布时间】: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


【解决方案1】:

合成 _uniqueKey 字段仅在使用复合键时生成并返回;如果是简单的key,直接使用key字段。

【讨论】:

    猜你喜欢
    • 2013-06-26
    • 2017-03-06
    • 2014-11-11
    • 2013-09-30
    • 2018-09-13
    • 1970-01-01
    • 2014-05-06
    • 2013-12-28
    • 2017-04-15
    相关资源
    最近更新 更多