0

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

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

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

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

错误“分片 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 例如 node1:8983/solr/collection1/select?q= : &group=true&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. 错误:分片 0 未设置排序字段值(FieldDoc.fields 为空);您必须在每个分片上将 fillFields=true 传递给 IndexSearcher.search
4

1 回答 1

0

“等等,你不能这样做。你要改变分片的数量?你最初的启动指定一个分片,调出另一个节点并称之为“shard2”是不一致的。

如果您在告诉 SolrCloud 有 2 个分片时提出了一个分片,那么您应该无法索引任何内容。

那你想做什么?使用您希望它拥有的分片数量创建您的集群。或者分裂碎片。或者其他什么,但不支持仅启动第二个节点并将其称为“shard2”。” - Erick Erickson。

非常感谢他。

于 2013-07-15T05:35:32.607 回答