我的 vespa 应用程序中有我的自定义搜索器和自定义 DocumenetProcessor。我的 service.xml 如下所示:
<services version="1.0">
<container id="default" version="1.0">
<document-api/>
<search>
<chain id="default" inherits="vespa">
<searcher id="com.example.test.CustomSearcher" bundle="example-vespa-app"/>
</chain>
</search>
<nodes>
<node hostalias="node1" />
</nodes>
<document-processing>
<chain id="default" inherits="vespa">
<documentprocessor id="com.example.test.CustomDocumentProcessor"/>
</chain>
</document-processing>
</container>
<content id="test_user" version="1.0">
<redundancy>1</redundancy>
<documents>
.....
</documents>
<nodes>
<node hostalias="node1" distribution-key="0" />
</nodes>
</content>
</services>
我的 CustomDocumentProcessor 如下所示:
public class CustomDocumentProcessor extends DocumentProcessor {
@Override
public Progress process(Processing processing) {
for (DocumentOperation op : processing.getDocumentOperations()) {
if (op instanceof DocumentPut) {
DocumentPut put = (DocumentPut) op;
Document document = put.getDocument();
document.setFieldValue("documentType",
String.valueOf(document.getDataType()));
}
}
return Progress.DONE;
}
}
当我从 service.xml 中删除 CustomDocumentProcessor 时,我的应用程序可以工作。当我添加它时,它会给出一个错误:
请求失败。HTTP 状态代码:400 无效的应用程序包:default.default:加载模型时出错:缺少链“vespa”。
这是为什么?请帮忙。