我的solr数据库中有1.000.000条记录。 我想更新所有没有唯一键ID的记录, 但我收到错误,需要唯一密钥! 我的Solr文件是:
{
id = 001,
name="Joe",
city = [Hyderabad],
phone = [9848022337]
}
这是我的代码。
//Preparing the Solr client
//Preparing the Solr document
SolrInputDocument doc = new SolrInputDocument();
Map map=new HashMap();
map.put("set","Ahmet");
doc.addField("name", map);
// or adding id list
// List ids = new ArrayList();
// doc.addField("id",ids);
updateRequest.add( doc );
UpdateResponse rsp = updateRequest.process(Solr);
我该怎么办?
similar sql is update tableName set name="ahmet"
答案 0 :(得分:1)
不能。
Solr中的任何更新都必须引用现有文档的uniqueKey
-没有通过查询更新或类似于UPDATE foo SET bar = 'baz' WHERE field = 'spam';
的功能。 uniqueKey
字段用于定义是创建新文档还是覆盖旧文档。
在您的示例中,您似乎有一个唯一的id
字段,但是如果不是这样,则可以configure Solr to assign a unique id to each document when it's added to the index。然后,在更新现有文档时,您必须引用该ID。