如何将自定义 DocumentOperation 从处理器发送到 DocumentProcessing 管道?
How to send custom DocumentOperation to DocumentProcessing pipeline from a Processor?
场景:我一直坚持这个问题很长时间,我认为解决方案可能很容易,但我就是看不到,这就是场景:
cURL POST to http://localhost:8080/my_imports (raw JSON data on body)
->
MyImportsCustomHandler (extends ThreadedHttpRequestHandler [Validations]
->
MyObjectProcessor (extends Processor) [JSON deserialize and data massage]
->
MyFirstDocumentProcessor (extends DocumentProcessor) [Set some fields and save]
问题是执行永远不会到达 MyFirstDocumentProcessor
,可能是因为请求不是从 document_api
端点开始的(有意)。
没有抛出任何错误,只是处理路径永远不会到达文档处理器链,我认为应该是因为在 MyObjectProcessor
我正在做:
DocumentType type =
localDocHandler.getDocumentTypeManager().getDocumentType("my_doc");
DocumentId id = new DocumentId("id:default:my_doc::2");
Document document = new Document(type, id);
DocumentPut docPut = new DocumentPut(document);
Processing proc = com.yahoo.docproc.Processing.of(docPut);
我从这里得到这个想法:https://github.com/vespa-engine/vespa/blob/master/docproc/src/test/java/com/yahoo/docproc/util/SplitterJoinerTestCase.java
但在那次测试中,我看到了这一行 splitter.process(p);
,我无法找到在处理器内部工作的合适替代品,在这种情况下,我只有 Request
、Execution
和DocumentProcessingHandler
我希望精通 Vespa 的人对此有所启发,这只是处理链上我无法桥接的最后一跳:|
要从 Java 代码编写文档,您需要使用文档访问 API:
http://docs.vespa.ai/documentation/document-api-guide.html#document-access
场景:我一直坚持这个问题很长时间,我认为解决方案可能很容易,但我就是看不到,这就是场景:
cURL POST to http://localhost:8080/my_imports (raw JSON data on body)
->
MyImportsCustomHandler (extends ThreadedHttpRequestHandler [Validations]
->
MyObjectProcessor (extends Processor) [JSON deserialize and data massage]
->
MyFirstDocumentProcessor (extends DocumentProcessor) [Set some fields and save]
问题是执行永远不会到达 MyFirstDocumentProcessor
,可能是因为请求不是从 document_api
端点开始的(有意)。
没有抛出任何错误,只是处理路径永远不会到达文档处理器链,我认为应该是因为在 MyObjectProcessor
我正在做:
DocumentType type =
localDocHandler.getDocumentTypeManager().getDocumentType("my_doc");
DocumentId id = new DocumentId("id:default:my_doc::2");
Document document = new Document(type, id);
DocumentPut docPut = new DocumentPut(document);
Processing proc = com.yahoo.docproc.Processing.of(docPut);
我从这里得到这个想法:https://github.com/vespa-engine/vespa/blob/master/docproc/src/test/java/com/yahoo/docproc/util/SplitterJoinerTestCase.java
但在那次测试中,我看到了这一行 splitter.process(p);
,我无法找到在处理器内部工作的合适替代品,在这种情况下,我只有 Request
、Execution
和DocumentProcessingHandler
我希望精通 Vespa 的人对此有所启发,这只是处理链上我无法桥接的最后一跳:|
要从 Java 代码编写文档,您需要使用文档访问 API: http://docs.vespa.ai/documentation/document-api-guide.html#document-access