我已经为我的问题编写了非常硬编码的解决方案,但应该没问题。我需要为索引中的所有文档编辑一些具体字段的值。我的索引中有 55500 个文档。
我正在尝试编辑每个文档的字段并提交 500 个文档。我认为这个解决方案应该可以工作(我试图从我的索引中按 id 删除一个文档,但它已被删除)但我的索引没有变化......仍然有字段值错误(#0; 我想消除)
for (int i = 0; i < 55501; i = i + 500) {
SolrQuery query = new SolrQuery();
query.setParam("start", i+"");
query.setParam("q", "*:*");
query.setParam("rows", "500");
String url = "http://MYINDEX";
HttpSolrServer solrServer = new HttpSolrServer(url);
QueryResponse qResponse;
try {
qResponse = solrServer.query(query);
SolrDocumentList docs=qResponse.getResults();
for (SolrDocument solrDocument : docs) {
String parseTime = (String) solrDocument.getFieldValue("parse_time");
String parseTimeUnix = (String) solrDocument.getFieldValue("parse_time_unix_timestamp");
parseTime = parseTime.replaceAll("#0;", "");
parseTimeUnix = parseTimeUnix.replaceAll("#0;", "");
solrDocument.setField("parse_time", parseTime);
solrDocument.setField("parse_time_unix_timestamp", parseTimeUnix);
}
} catch (SolrServerException e) {
e.printStackTrace();
}
try {
solrServer.commit();
} catch (SolrServerException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}