Error loading model: Missing chain 'vespa'

73 Views Asked by At

I have my custom Searcher and my custom DocumenetProcessor in my vespa app.My service.xml is given below:

<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>

My CustomDocumentProcessor is given below:

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;
    }

}

When I remove CustomDocumentProcessor from service.xml, my app works .When I add it , It gives an error:

Request failed. HTTP status code: 400 Invalid application package: default.default: Error loading model: Missing chain 'vespa'.

Why is that? Please help.

1

There are 1 best solutions below

3
On

Remove "inherits=vespa" from the document-processing chain.

There is no "vespa document processing chain like there is for search chains.