首先先安装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