当尝试执行“字段”的原子更新时,我最终得到了一个存储在那里的地图(比如'add = something')而不是原子添加操作。该字段存储,docValues和multiValued。无法得到:我做错了什么?
...
final SolrQuery query = new SolrQuery("tag:(" + term + ')');
final AddUpdateCommand addUpdateCommand;
final SolrQueryRequest queryRequest = new LocalSolrQueryRequest(targetCore, query)
addUpdateCommand = new AddUpdateCommand(queryRequest);
final SolrInputDocument document = new SolrInputDocument();
document.addField("tag", term);
document.addField("fields", ImmutableMap.of("add", fieldName));
addUpdateCommand.solrDoc = document;
assert AtomicUpdateDocumentMerger.isAtomicUpdate(addUpdateCommand);
updateHandler.addDoc(addUpdateCommand);
...
答案 0 :(得分:0)
试试这个:
Map<String,Object> fieldModifier = new HashMap<>(1);
fieldModifier.put("add",fieldName);
sdoc.addField("fields", fieldModifier); // add the map as the field value
答案 1 :(得分:0)
我实际上最终只是存储List
而不是Map
,手动更新必要字段的内容。由于某种原因原子更新不起作用。