将索引从Solr导出到文件,其中字段对于FieldCache是​​非法的

时间:2018-07-23 18:38:23

标签: apache solr solr-schema

我正在尝试将Solr索引导出到JSON文件。但是,在我关心的2个字段中,其中一个(字段A)是multivalued,另一个(字段Bneither indexed nor has doc values(此字段可能缺少架构) 。两者都导致显示can not use FieldCache on a field which is ...

的错误

这些字段的模式位于远程服务器上,不应更改。那么是否有可能通过这些字段导出索引?谢谢!

p.s。如果可能的话,我也想在这两个字段上fl,因为它们都是我所需要的。

1 个答案:

答案 0 :(得分:0)

在这种情况下,您可能想自己编写一个导出脚本,using a cursor mark来加快检索速度(要使用/ export功能,必须在字段中启用docValues)。 / p>

有几种语言的示例可用于提取光标标记页面上的所有文档,并且它们几乎可以直接应用于结果集(您必须自己编写JSON)。

SolrQuery q = (new SolrQuery(some_query)).setRows(r).setSort(SortClause.asc("id"));
String cursorMark = CursorMarkParams.CURSOR_MARK_START;
boolean done = false;
while (! done) {
  q.set(CursorMarkParams.CURSOR_MARK_PARAM, cursorMark);
  QueryResponse rsp = solrServer.query(q);
  String nextCursorMark = rsp.getNextCursorMark();
  doCustomProcessingOfResults(rsp);
  if (cursorMark.equals(nextCursorMark)) {
    done = true;
  }
  cursorMark = nextCursorMark;
}

请确保使用较大的r值,以减少往返次数。