# Install Solr download and install Solr from http://lucene.apache.org/solr/. you can access Solr admin from your browser: http://localhost:8983/solr/ use the port number used in installation. # MySQL connector Download JDBC driver for MySQL from http://dev.mysql.com/downloads/connector/j/. Copy file from the downloaded archive 'mysql-connector-java-*.jar' to the folder 'contrib/dataimporthandler/lib' in the folder where Solr was installed. Create 'lib' folder if needed. # MS SQL Server connector Download Microsoft JDBC Driver 4.0 for SQL Server from: http://www.microsoft.com/en-us/download/details.aspx?displaylang=en&id=11774 copy file 'sqljdbc4.jar' to 'contrib/dataimporthandler/lib' # Setup a new collection create a new folder for a new collection - 'myproducts'. The collection will be located in '/solr/myproducts' folder. Create folders conf and data in the collection folder: - /solr/myproducts/conf - /solr/myproducts/data ## solrconfig.xml copy solrconfig.xml from an existing collection. Find my version of solrconfig.xml below in this gist. edit solrconfig.xml by adding: Make sure that 'dist' folder contains two files for data import handler: - solr-dataimporthandler-4.10.2.jar - solr-dataimporthandler-extras-4.10.2.jar add these lines to solrconfig.xml: data-config.xml ## data-config.xml for MySQL database the file 'data-config.xml' will define data we want to import/index from our datasource. Assuming that our DB named mydb1 and we have table products with columns id, name and updated_at. Column 'updated_at' of datetime type stores the date of last modification of the row. This column will be used in incremental import to track rows modified since the last import into Solr. # define data source * The 'query' gives the data needed to populate fields of the Solr document in full-import * The 'deltaImportQuery' gives the data needed to populate fields when running a delta-import * The 'deltaQuery' gives the primary keys of the current entity which have changes since the last index time Full-import command uses the "query" query, delta-import command uses the delta components. ## data-config.xml for SQL Server database ## schema.xml edit file 'schema.xml' accordingly to fields defined in data-import.xml: ... ## add collection to solr use admin interface in your browser to add a new collection. Add core: - name: myproducts - instanceDir: myproducts # Perform full or incremental import After successfully adding a collection to Solr you can select it and run dataimport commands: - full-import - use URL: http://localhost:8983/solr/myproducts/dataimport?command=full-import - delta-import - use URL: http://localhost:8983/solr/myproducts/dataimport?command=delta-import The full import loads all data every time, while incremental import means only adding the data that changed since the last indexing. By default, full import starts with removal the existing index (parameter clean=true). Note! Use clean=false while running delta-import command. # References * http://wiki.apache.org/solr/DIHQuickStart * http://wiki.apache.org/solr/DataImportHandler