Friday, February 13, 2015

SOLR CRUD IN JAVA


Solr is an open source enterprise search platform built on Apache Lucene, it easy to run a full-featured search .

Solr search on index. instead of searching the text directly.

This type of index is called an inverted index, index data structure storing a mapping from content such as word or numbers in database or documents.

An index consists of one or more Documents, and a Document consists of one or more Fields.




Maven dependency

<dependency>
  <groupId>org.apache.solr</groupId>
  <artifactId>solr-solrj</artifactId>
  <version>4.7.2</version>
</dependency>

or
download the jar
solr-solrj-4.7.2.jar



Program to demonstrate Crud operation on solr:-


import org.apache.solr.client.solrj.impl.HttpSolrServer;
import org.apache.solr.client.solrj.impl.XMLResponseParser;
import org.apache.solr.client.solrj.response.QueryResponse;
import org.apache.solr.common.SolrException;
import org.apache.solr.common.SolrInputDocument;
import org.apache.solr.common.params.ModifiableSolrParams;


/**
 * @author  Rohan Kamat
 *
 */
public class SolrCrud{
private HttpSolrServer server = null;

public SolrCrud() throws Exception {
server = getSolrConnectionObject();
}



//connection object of solr
public HttpSolrServer getSolrConnectionObject() throws Exception {
HttpSolrServer solrCon = null;
try {
if (solrCon == null) {
solrCon = new HttpSolrServer("http://localhost:8983/solr");
solrCon.setParser(new XMLResponseParser());
solrCon.setSoTimeout(5000);
solrCon.setConnectionTimeout(5000);
}
} catch (Exception exc) {
System.out.println( "Problem in Solr Connection: "
+ exc.getMessage());
exc.printStackTrace();
}
return solrCon;
}



//query from solr
public QueryResponse query(String query)
throws Exception {
ModifiableSolrParams solrParams = new ModifiableSolrParams();
solrParams.set("q", query);
return server.query(solrParams);
}

//add document in solr
public void add(String id, String name) throws Exception {
// add solr document
SolrInputDocument document = new SolrInputDocument();
document.addField("id", id);
document.addField("name", name);
server.add(document);
server.commit();
}


    //delete a document from solr
public void delete(String id) throws Exception {
server.deleteByQuery("id:" + id);
server.commit();
}

public static void main(String[] args) throws Exception {
SolrCrud scrud=new SolrCrud();
try {
            //add document in solr
scrud.add("0", "name0");
scrud.add("1", "name1");
scrud.add("2", "name2");

//query document in solr
scrud.query("name1");

//delete document in solr
scrud.delete("1");
} catch (SolrException solrEx) {
solrEx.printStackTrace();

} catch (Exception ex) {
ex.printStackTrace();
}
}

}

2 comments: