You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 4 Next »

Solr Component

Available as of Camel 2.9

The Solr component allows you to interface with an Apache Lucene Solr server.

Maven users will need to add the following dependency to their pom.xml for this component:

<dependency>
    <groupId>org.apache.camel</groupId>
    <artifactId>camel-solr</artifactId>
    <version>x.x.x</version>
    <!-- use the same version as your Camel core version -->
</dependency>

URI format

solr://host[:port]/solr?[options]

Operations

The following operations are currently supported.

operation

description

INSERT

insert a new record based on headers values (headers must be prefixed with "SolrField.")

ADD_BEAN

insert a new record based on values in an annotated bean

DELETE_BY_ID

delete a record by ID

DELETE_BY_QUERY

delete a record by a query

COMMIT

performs a commit on any pending index changes

ROLLBACK

performs a rollback on any pending index changes

OPTIMIZE

performs a commit on any pending index changes and then runs the optimize command

Example

Below is a simple INSERT example in Java and Spring XML.

from("direct:start")
    .setHeader(SolrConstants.OPERATION, constant(SolrConstants.OPERATION_INSERT))
    .setHeader(SolrConstants.FIELD + "id", body())
    .to("solr://localhost:8983/solr");
<route>
    <from uri="direct:start"/>
    <setHeader headerName="SolrOperation">
        <constant>INSERT</constant>
    </setHeader>
    <setHeader headerName="SolrField.id">
        <simple>${body}</simple>
    </setHeader>
    <to uri="solr://localhost:8983/solr"/>
</route>

A client would simply need to pass a String body message to this route as follows.

    template.sendBody("direct:start", "value1");

Querying Solr

Currently, this component doesn't support querying data (will be added later). For now, you can query Solr in a route using HTTP.

TODO: add a simple example to retrieve the data inserted above.

For more information, see these resources...

Solr Query Tutorial

Solr Query Syntax

  • No labels