1
<route>
    <from uri="direct:insert"/>
    <setHeader headerName="SolrOperation">
        <constant>INSERT</constant>
    </setHeader>
    <setHeader headerName="SolrField.id">
        <simple>${body}</simple>
    </setHeader>
    <to uri="solr://localhost:8983/solr"/>
</route>

これは ${body} を 'id' フィールドに設定するためのサンプル コードですが、SolrInputDocument または同等の XML としてメッセージ本文をサポートしているため、上記の XML ルートでどのようにすればよいでしょうか?

4

1 に答える 1

0

SolrInputDocument がある場合は、それをメッセージの本文としてルートに渡し、OPERATION ヘッダーが適切に設定されていることを確認します...

//example producer code
SolrInputDocument doc = new SolrInputDocument();
doc.addField("id", "MA147LL/A", 1.0f);
template.sendBodyAndHeader("direct:start", doc, SolrConstants.OPERATION, SolrConstants.OPERATION_INSERT);

//simplified route that just expects the message body and OPERATION header are setup appropriately
<from uri="direct:insert"/>
<to uri="solr://localhost:8983/solr"/>

詳細については、単体テストを参照してください...

https://svn.apache.org/repos/asf/camel/trunk/components/camel-solr/src/test/java/org/apache/camel/component/solr/SolrUpdateTest.java

于 2012-10-31T17:29:59.360 に答える