使用group.query时,Solr 4.3.1错误“必须将fillFields = true传递给IndexSearcher.search”

时间:2013-07-11 07:25:42

标签: solr lucene

我在ubuntu上使用solr-4.3.1并在jetty上启动solr。我有自定义schema.xml,所有查询字段都在其中。我的收藏“collection1”由8个碎片组成 我尝试按某个字段对数据进行分组,然后使用:

http://solr-node1:8983/solr/collection1/select/?q=*:*&group=true&group.field=rgn_str

解决正确答案并提供结果,但当我尝试使用 group.query

http://solr-node1:8983/solr/collection1/select/?q=*:*&group=true&group.query=rgn_str:test

错误“shard 7没有设置排序字段值(FieldDoc.fields为空);您必须将fillFields = true传递给每个分片上的IndexSearcher.search”

solr的文档我找不到如何指定此参数。 怎么做?

要重复此问题,请执行以下操作

  1. 启动SolrCloud的node1(4.3.1默认配置)(java -Dbootstrap_confdir =。/ solr / collection1 / conf -Dcollection.configName = myconf -DzkRun -jar start.jar)
  2. 导入到collection1 - > shard1一些数据
  3. 尝试group.query,例如?节点1:8983 / solr的/ collection1 /选择Q = &安培;基团=真安培; group.query = someFiled:someValue中。索引数据非常重要。
  4. 结果是,没有错误
  5. 启动SolrCloud的node2(java -Djetty.port = 7574 -DzkHost = localhost:9983 -jar start.jar)
  6. 在node2上为collection1添加新核心 - > shard2。默认核心“collection1”卸载。我们有一个超过两个碎片的集合。 Shard1 - 有数据,shard2 - 没有数据。
  7. 再次尝试group.query node1:8983 / solr / collection1 / select?q = & group = true& group.query = someFiled:someValue。
  8. 错误:shard 0未设置排序字段值(FieldDoc.fields为null);您必须将fillFields = true传递给每个分片上的IndexSearcher.search

1 个答案:

答案 0 :(得分:0)

“等等,你不能这样做。你正在改变号码 碎片?您的原始启动指定了一个分片, 启动另一个节点并将其称为“shard2”不是 是一致的。

如果你在告诉SolrCloud时提出了一个碎片 有2个分片,你不应该能够索引 任何东西。

那你想做什么?使用。创建您的群集 你打算拥有的碎片数量。或拆分碎片。要么 什么,但只是提出第二个节点和呼叫 它不支持“shard2”。“ - Erick Erickson。

非常感谢他。