【问题标题】:Solr 4.3.1 error "you must pass fillFields=true to IndexSearcher.search" on using group.querySolr 4.3.1 在使用 group.query 时出现错误“您必须将 fillFields=true 传递给 IndexSearcher.search”
【发布时间】:2013-07-09 08:58:00
【问题描述】:

我在 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

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

【问题讨论】:

    标签: solr lucene


    【解决方案1】:

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

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

    那么你想做什么?使用 您打算拥有的分片数量。或者分裂碎片。要么 一些东西,但只是提出第二个节点并调用 它不支持“shard2”。” - Erick Erickson。

    非常感谢他。

    猜你喜欢
    • 1970-01-01
    • 2022-11-09
    • 1970-01-01
    • 2020-02-26
    • 2019-08-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多