solr - 如何更新 solr 数据库中没有 id 的多个文档?
问题描述
我的 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"
解决方案
你不能。
Solr 中的任何更新都必须引用uniqueKey
现有文档的 —— 没有类似查询更新或类似UPDATE foo SET bar = 'baz' WHERE field = 'spam';
. 该uniqueKey
字段定义是创建新文档还是覆盖旧文档。
在您的示例中,您似乎有一个id
唯一的字段,但如果不是这种情况,您可以将 Solr 配置为在将每个文档添加到 index 时为其分配一个唯一的 id。然后,您必须在更新现有文档时引用该 ID。
推荐阅读
- javascript - 使用 React 加载异步 Google Maps JavaScript API
- visual-studio - Visual Studio 2017 远程 docker compose 因卷安装错误而失败
- android - 如何将 OpenSL ES 添加到 android 上的 QT 项目?
- python - 如何修复使用非元组序列进行多维索引的弃用警告
- c# - 序列图 UML 中的循环范围
- android - 在 Firebase 数据库查询 android 上使用 addChildEventListener
- python - python 3从json字典中获取特定值
- java - android片段使用onCreateView但不能添加firebase
- swift - 斯威夫特:对成员“地图”的模糊引用
- django - 如何基于 FK 进行查询?