DSE Solr,numfound> 0但返回的文档为空,对于索引/存储,字段设置为true

时间:2015-03-19 12:01:32

标签: solr cassandra bigdata datastax

有类似的问题,但他们没有回答/解决我的问题所以添加一个新问题。

我正在使用具有4个solr节点的Datastax 5节点集群。 我在cassandra中创建了一个具有单列和LZ4压缩的表,其中包含以下脚本 -

CREATE TABLE mykeyspace.mytable (
  myfield text,
  PRIMARY KEY (myfield)
);

然后我添加了solrconfig.xml和schema.xml并为我的表创建了一个核心.Below是来自schema.xml的快照

<types>
  <fieldType name="someField" class="solr.TextField" positionIncrementGap="100">
    <analyzer type="query">
      <tokenizer class="solr.WhitespaceTokenizerFactory"/>
      <filter class="solr.LowerCaseFilterFactory"/>
      <filter class="solr.EnglishMinimalStemFilterFactory"/>
    </analyzer>
    <analyzer type="index">
      <tokenizer class="solr.WhitespaceTokenizerFactory"/>
      <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="1" catenateNumbers="1" catenateAll="0" preserveOriginal="0" splitOnCaseChange="0"/>
      <filter class="solr.LowerCaseFilterFactory"/> 
      <filter class="solr.EnglishMinimalStemFilterFactory"/>
    </analyzer>
  </fieldType>
</types>

<fields>
  <field name="myfield" type="someField" indexed="true" stored="true" multiValued="false" />
</fields>

<uniqueKey>myfield</uniqueKey>
<defaultSearchField>myfield</defaultSearchField>
<solrQueryParser defaultOperator="OR"/>

我使用cassandra cqlsh将几条记录插入到我的表中。

INSERT INTO mykeyspace.mytable (myfield) VALUES ('testStr1');
INSERT INTO mykeyspace.mytable (myfield) VALUES ('testStr2');

如果我检查numdocs和maxdocs,从Solr UI我看到所有4个节点上的插入立即反映。

在datastax日志中,我也看到了以下

DEBUG [Index WorkPool work thread-3] 2015-03-19 04:29:41,646 AbstractSolrSecondaryIndex.java (line 612) Updating key testStr1 on index mykeyspace.mytable
DEBUG [Index WorkPool work thread-0] 2015-03-19 04:29:41,744 AbstractSolrSecondaryIndex.java (line 612) Updating key testStr2 on index mykeyspace.mytable

现在当我通过Solr查询时,我得到了numdocs&gt; 0,但docslist为空。在一个单独的环境中,相同的steps / config就像魅力一样,我能够完美地索引和查询数据。

我在两种环境下都获得如下所示的INFO日志 -

Trying to load resource admin-extra.html for core mykeyspace.mytable by querying from local node with CL QUORUM
No resource admin-extra.html found for core mykeyspace.mytable by querying from local node.
Trying to load resource admin-extra.html for core mykeyspace.mytable by looking for legacy resources...
No resource admin-extra.html found for core mykeyspace.mytable on any live node.
Couldn't find resource: admin-extra.html, ignoring...

日志中没有其他错误/警告。 这可能有什么问题?任何帮助表示赞赏。

#UPDATE 1 我将solrconfig更改为硬提交,但这也没有用。 然后我尝试通过solrj添加数据并调用硬提交,这也失败了以下异常 -

ERROR [http-8983-exec-2] 2015-03-20 04:51:58,360 SolrDispatchFilter.java (line 696) Error request exception: Solr requires that request parameters sent using application/x-www-form-urlencoded content-type can be read through the request input stream. Unfortunately, the stream was empty / not available. This may be caused by another servlet filter calling ServletRequest.getParameter*() before SolrDispatchFilter, please remove it.

最后,我将表架构更改为具有整数主键,并发布事情像魔术一样正常工作。

我仍然不清楚先前架构的问题是什么!!

1 个答案:

答案 0 :(得分:-1)

您无法索引只有一列且该列与其主键同时存在的列系列

是Solr限制