deleteByQuery通过XML调用工作,但不是JSON用于多条件查询
发布时间:2020-12-16 22:46:50 所属栏目:百科 来源:网络整理
导读:在传递 JSON数据与XML数据时,Solr的删除查询语法是否不同? Solr的 docs相当含糊.我在Java 1.8上的Mac OSX上使用Solr 5.0.0. 这是我本地方框上的curl命令. curl -v http://localhost:8983/solr/nZ/update -H "Content-Type: application/json" --data-binary
在传递
JSON数据与XML数据时,Solr的删除查询语法是否不同? Solr的
docs相当含糊.我在Java 1.8上的Mac OSX上使用Solr 5.0.0.
这是我本地方框上的curl命令. curl -v http://localhost:8983/solr/nZ/update -H "Content-Type: application/json" --data-binary [ { "delete": { "query":"UserId:5629499534213120 AND SessionId:5066549580791808 AND Kind:event" } } ] 这输出: { "responseHeader": { "status": 400,"QTime": 2 },"error": { "msg": "Document is missing mandatory uniqueKey field: Id","code": 400 } } 通过XML运行它: curl -v http://localhost:8983/solr/nZ/update -H "Content-Type: text/xml" --data-binary ' <delete> <query>UserId:5629499534213120 AND SessionId:5066549580791808 AND Kind:event</query> </delete> ' 这会删除文档和输出: <?xml version="1.0" encoding="UTF-8"?> <response> <lst name="responseHeader"><int name="status">0</int><int name="QTime">57</int></lst> </response> 我还查询了我要删除的文件.他们只有2个,他们都有Id字段. Id是字符串和架构的唯一键. JSON的多条件的查询语法是否与XML不同? 解决方法
Solr中的JSON更新格式有点挑剔.似乎你混合了两个非常相似的结构.数组外部[]结构适用于您只提交没有命令的文档.
对象{}外部结构是指具有命令和文档的时间. 你混合了这两个.尝试删除外部数组结构,看看它是否有帮助.请注意,Solr确实允许/要求对象中的第二种格式的重复键,某些库无法处理生成.在这种情况下,您可能仅限于每个文档的同一更新命令的一个实例. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |