-1

我的 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”。

这是为什么?请帮忙。

4

1 回答 1

2

从文档处理链中删除“inherits=vespa”。

没有像搜索链那样的“vespa 文档处理链”。

于 2018-11-20T12:07:56.147 回答