{
"status":1,
"expire":15349870000,
"detail1":"test1",
"detail2":"test2"
}
{
"status":0,
"expire":15349870000,
"detail1":"test1",
"detail2":"test2"
}
我有两个具有相同数据类型的不同文档,我想根据条件更新状态detail1和detail2
if(status == 0并过期> now()),然后status = 1和detail1 =“好”
if(status == 1并过期> now()),然后status = 2且detail2 =“坏”
但是我要在Processor中完成所有这些操作。那么,由于无法获取处理器中的字段值,如何在处理器中应用检查?
@Override
public Progress process(Processing processing) {
for (DocumentOperation op : processing.getDocumentOperations()) {
if (op instanceof DocumentUpdate) {
DocumentUpdate documentUpdate = (DocumentUpdate) op;
if(?){
documentUpdate.addFieldUpdate(FieldUpdate.createAssign(documentUpdate.getDocumentType().getField("detail1"), new StringFieldValue("good")));
}
else if(?){
documentUpdate.addFieldUpdate(FieldUpdate.createAssign(documentUpdate.getDocumentType().getField("detail2"), new StringFieldValue("bad")));
}
}
}
return Progress.DONE;
}
请帮助!
答案 0 :(得分:3)
您仅对UPDATE文档操作进行操作(如果为DocumentUpdate的op instance)。您无权访问存储在索引中的原始文档字段,而只能访问属于DocumentUpdate的更新。参见https://docs.vespa.ai/documentation/document-processing-overview.html