Solr增删查

1、环境

首先先安装solr或者solr先配置好tomcat,最终效果图请看http://my.oschina.net/tdd/blog/523727

2、代码

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
人最幸福的事情是家庭和睦

3、索引

Solr增删查_第1张图片

我们可以查看schema.xml,配置索引字段,提高查询效率。

你可能感兴趣的:(Solr增删查)