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();
}
}
}
SOLR CRUD IN JAVA
ReplyDeletecan we update
ReplyDelete