【发布时间】:2015-08-24 19:24:33
【问题描述】:
官方的 Solr Java API 有一个 deleteByQuery 操作,我们可以删除满足查询的文档。 AWS CloudSearch SDK 似乎没有匹配的功能。我只是没有看到 deleteByQuery 等价物,还是我们需要自己推出?
类似这样的:
SearchRequest searchRequest = new SearchRequest();
searchRequest.setQuery(queryString);
searchRequest.setReturn("id,version");
SearchResult searchResult = awsCloudSearch.search(searchRequest);
JSONArray docs = new JSONArray();
for (Hit hit : searchResult.getHits().getHit()) {
JSONObject doc = new JSONObject();
doc.put("id", hit.getId());
// is version necessary?
doc.put("version", hit.getFields().get("version").get(0));
doc.put("type", "delete");
docs.put(doc);
}
UploadDocumentsRequest uploadDocumentsRequest = new UploadDocumentsRequest();
StringInputStream documents = new StringInputStream(docs.toString());
uploadDocumentsRequest.setDocuments(documents);
UploadDocumentsResult uploadResult = awsCloudSearch.uploadDocuments(uploadDocumentsRequest);
这合理吗?有没有更简单的方法?
【问题讨论】:
标签: java amazon-web-services solr amazon-cloudsearch