在vespa中的DocumentProcessor中更新文档

时间:2018-11-23 10:05:11

标签: vespa

使用REST API更新文档时如何在DocumentProcessor中向现有文档添加新字段。

@Override
        public Progress process(Processing processing) {
            for (DocumentOperation op : processing.getDocumentOperations()) {
                if (op instanceof DocumentUpdate) {
                    DocumentUpdate documentUpdate = (DocumentUpdate) op;
                    // what shoud I write here to add new field with value 

                }

            }
            return Progress.DONE;
        }

当我在下面使用代码时,这会给我错误

DocumentUpdate upd = new DocumentUpdate(type, id);
             upd.addFieldUpdate(FieldUpdate.createMap(type.getField("myStrWSet"), "foo", new AssignValueUpdate(100)));

错误:AssignValueUpdate无法应用于int。

并且,如何使用新字段及其值创建FieldUpdate对象。

请帮助。

1 个答案:

答案 0 :(得分:3)

documentUpdate.addFieldUpdate(FieldUpdate.createAssign(documentUpdate.getDocumentType().getField("myField"),
                                                       new StringFieldValue("myValue")));