首先先安装solr或者solr先配置好tomcat,最终效果图请看http://my.oschina.net/tdd/blog/523727
Bean:
package com.tian.solr.model;
import org.apache.solr.client.solrj.beans.Field;
public class Item {
@Field
String id;
@Field
String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
}
Server:
package com.tian.solr.server;
import java.util.List;
import org.apache.solr.client.solrj.SolrQuery;
import org.apache.solr.client.solrj.impl.HttpSolrServer;
import org.apache.solr.client.solrj.impl.XMLResponseParser;
import org.apache.solr.client.solrj.request.AbstractUpdateRequest.ACTION;
import org.apache.solr.client.solrj.request.UpdateRequest;
import org.apache.solr.client.solrj.response.QueryResponse;
import org.apache.solr.client.solrj.response.UpdateResponse;
import com.tian.solr.model.Item;
public class SolrServer {
public static final String URL = "http://localhost:8080/solr";
/**
* @param url
* 2015年10月30日 下午10:35:38
* @author:Tian_dd
* @blog: tian-dd.top
*/
public static HttpSolrServer connectServer(String url) throws Exception {
HttpSolrServer server = new HttpSolrServer(url);
server.setMaxRetries(1); // defaults to 0. > 1 not recommended.
server.setConnectionTimeout(5000); // 5 seconds to establish TCP
server.setParser(new XMLResponseParser()); // binary parser is used by
server.setSoTimeout(1000); // socket read timeout
server.setDefaultMaxConnectionsPerHost(100);
server.setMaxTotalConnections(100);
server.setFollowRedirects(false); // defaults to false
server.setAllowCompression(true);
return server;
}
/**
* 2015年10月30日 下午10:36:09
* @author:Tian_dd
* @blog: tian-dd.top
*/
public static void solrOrder() throws Exception {
HttpSolrServer server = SolrServer.connectServer(URL);
SolrQuery query = new SolrQuery();
query.setQuery("id:*e*");// 多条件使用空格分隔
query.setFilterQueries("name:*是*");
query.setQuery("*:*");
QueryResponse rsp = server.query(query);
List<Item> beans = rsp.getBeans(Item.class);
System.out.println(beans.size());
for (Item item : beans) {
System.out.println(item.getId());
System.out.println(item.getName());
}
}
/**
* 2015年10月30日 下午10:36:38
* @author:Tian_dd
* @blog: tian-dd.top
*/
public static void addBean () throws Exception{
HttpSolrServer server = SolrServer.connectServer(URL);
Item item = new Item();
item.setId("three");
item.setName("人最幸福的事情是家庭和睦");
server.addBean(item);
UpdateRequest updateRequest = new UpdateRequest();
updateRequest.setAction(ACTION.COMMIT, false, false);
UpdateResponse uRequest = updateRequest.process(server);
}
/**
* 2015年10月30日 下午10:36:45
* @author:Tian_dd
* @blog: tian-dd.top
*/
public static void deleteBean(String id) throws Exception{
HttpSolrServer server = SolrServer.connectServer(URL);
UpdateRequest updateRequest = new UpdateRequest();
updateRequest.deleteById(id);
updateRequest.setAction(ACTION.COMMIT, false, false);
UpdateResponse uRequest = updateRequest.process(server);
}
}
Test:
package com.tian.solr.test;
import com.tian.solr.server.SolrServer;
public class SolrTest {
public static void main(String[] args) throws Exception{
//addBean();
//deleteBean("one");
SolrServer.solrOrder();
}
}
昨天插入了部分数据,调用查询函数(前提solr配置正确):
2 one 实践是检验真理的唯一标准 three 人最幸福的事情是家庭和睦
?

我们可以查看schema.xml,配置索引字段,提高查询效率。
原文:http://my.oschina.net/tdd/blog/524258