我在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 无效的应用程序包:默认值。默认值:错误加载模型:缺少链“ vespa”。
那是为什么?请帮忙。
答案 0 :(得分:2)
从文档处理链中删除“ inherits = vespa”。
没有像搜索链那样的“ vespa文档处理链”。