首页>代码>apache solr项目demo实例>/SolrWeb/src/com/mifeng/solr4jtest/AddField.java
package com.mifeng.solr4jtest;

import java.io.IOException;
import java.net.MalformedURLException;
import java.util.ArrayList;
import java.util.Collection;

import org.apache.solr.client.solrj.SolrQuery;
import org.apache.solr.client.solrj.SolrServer;
import org.apache.solr.client.solrj.SolrServerException;
import org.apache.solr.client.solrj.impl.CommonsHttpSolrServer;
import org.apache.solr.client.solrj.response.QueryResponse;
import org.apache.solr.common.SolrDocumentList;
import org.apache.solr.common.SolrInputDocument;

import com.mifeng.Config.Config;

/**
 * 测试搜索引擎服务器<br>
 * 多核配置以及单核配置取决于地址
 * 
 * @author MiFeng
 * 
 */
public class AddField {
	// private final String SOLRURL = "http://localhost:9264/solr/";
	// private final String CORE0 = "http://localhost:9264/solr/core0/";
	// private final String CORE1 = "http://localhost:9264/solr/core1/";

	public static void main(String[] args) throws SolrServerException,
			IOException {

		AddField field = new AddField();
		field.addField();
		field.getField();
	}

	/**
	 * 获取搜索服务器实例
	 * 
	 * @param name
	 * @return
	 * @throws MalformedURLException
	 */
	public SolrServer getSolrServer(String name) throws MalformedURLException {
		String core = "";
		// 加载属性文件
		Config.load("");
		// 从属性文件中获取搜索服务器相对域地址
		core = Config
				.getProperty("core" + name, Config.getProperty("core", ""));
		if (core == null) {
			System.out.println("属性文件读取错误~");
			return null;
		}
		// 返回搜索服务器实例
		return new CommonsHttpSolrServer(core);
	}

	/**
	 * 添加索引
	 * 
	 * @throws SolrServerException
	 * @throws IOException
	 */
	@SuppressWarnings( { "unchecked" })
	public void addField() throws SolrServerException, IOException {
		// 获得一个server的实例
		SolrServer solrServer = getSolrServer("Type");
		if (solrServer != null) {
			// 清除搜索服务器所有索引
			solrServer.deleteByQuery("*:*");

			Collection docs = new ArrayList();
			long startTime = System.currentTimeMillis();
			// 循环添加索引
			for (int i = 0; i < 10000; i++) {
				SolrInputDocument doc1 = new SolrInputDocument();
				doc1.addField("id", "id" + i);
				doc1.addField("name", "name" + i);
				doc1.addField("price", i);

				doc1.addField("title", "title" + i);
				if (i % 7 != 0) {
					doc1.addField("simple", "测试你我他" + i);
				} else {
					doc1.addField("simple", "午夜天空龙" + i);
				}
				docs.add(doc1);
				// 模仿flush()避免内存溢出
				if (i % 100 == 0) {
					solrServer.add(docs);
					solrServer.commit();
					docs.clear();
				}
			}
			long endTime = System.currentTimeMillis();
			System.out.println(endTime - startTime);
		}
	}

	/**
	 * 搜索
	 * 
	 * @throws MalformedURLException
	 * @throws SolrServerException
	 */
	public void getField() throws MalformedURLException, SolrServerException {
		// 创建服务器实例
		SolrServer solrServer = getSolrServer("Type");
		// 查询实例
		SolrQuery query = new SolrQuery();

		// 查询条件
		query.setQuery("simple:'他'");
		// 设置查处条数
		query.setRows(10);
		// 设置从那条开始查询
		query.setStart(10);
		// 执行
		QueryResponse rsp = solrServer.query(query);
		// 查询时间
		System.out.println(rsp.getQTime());
		// 结果
		SolrDocumentList docs = rsp.getResults();

		for (int i = 0; i < docs.size(); i++) {
			for (String str : docs.get(i).getFieldNames()) {
				System.out.println(str + ":" + docs.get(i).getFieldValue(str));
			}
		}

	}
}
最近下载更多
q1348778201  LV1 2020年4月20日
刘婕小可爱  LV2 2019年9月18日
xushanlai  LV1 2019年8月22日
Susan123  LV2 2019年7月21日
C544350851  LV26 2019年4月15日
zuidaima1666  LV1 2018年12月18日
庞力5079  LV1 2018年10月9日
georgekaren  LV2 2018年8月30日
bai620123  LV16 2018年7月6日
40255118  LV9 2018年6月22日
最近浏览更多
evagsd  LV6 2022年9月2日
zhuohua 2022年3月26日
暂无贡献等级
caozhaoqi83  LV5 2021年1月21日
chenfuxing521 2020年12月16日
暂无贡献等级
kun_1076378263  LV4 2020年12月13日
李志伟122  LV2 2020年10月15日
aluckboy2 2020年10月9日
暂无贡献等级
q1348778201  LV1 2020年4月20日
3581Nicezza 2020年4月3日
暂无贡献等级
gxwRoom工作室  LV10 2020年3月4日
顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友