solr入门

Solr介绍

  Solr是apache下的一个开源项目。采用Java开发。它是基于Lucene的全文搜索服务器。Solr提供了比Lucene更为丰富的查询语言,同时实现可配置,可扩展,并对索引,搜索性能进行了优化。

  Solr可以独立运行,运行在Jetty、Tomcat等这些Servlet容器中,Solr 索引的实现方法很简单,用 POST 方法向 Solr 服务器发送一个描述 Field 及其内容的 XML 文档,Solr根据xml文档添加、删除、更新索引 。Solr 搜索只需要发送 HTTP GET 请求,然后对 Solr 返回Xml、json等格式的查询结果进行解析,组织页面布局。Solr不提供构建UI的功能,Solr提供了一个管理界面,通过管理界面可以查询Solr的配置和运行情况。

 

Solr的安装

 前期准备:

      ①先下载。Solr下载地址: http://archive.apache.org/dist/lucene/solr/

       ②安装Solr与Tomcat集成:比如为 Linux环境CentOS6.4、 Tomcat7.0、 Solr4.10.3

安装步骤:

      ①解压Solr: tar -zxvf solr-4. 10.3.tgz.tar

      ②进入目录: cd solr-4.10.3/example/webapps/

      ③拷贝其下war文件到tomcat的webapps中: cp solr.war /usr/local/apache-tomcat-7.0.29/webapps/

      ④解压Solr: mkdir solr && unzip solr.war -d solr && m -rf solr.war

      ⑤修改解压好的solr文件夹,修改其文件: vim solr/WEB-INF/web.xml, 查找到nv-entry内容,解开注释文本。并修改solr/home              的地址: /usr/local/solr-4. 10.3/example/solr.保存并退出即可。|

     ⑥拷贝相关jar包到tomcat下: cd /usr/local/solr-4.10.3/example/lib/ext && cp */usr/local/apache-tomcat-7 .0.29/1ib/

      ⑦启动tomcat即可: /usr/local/apache-tomcat-7.0.29/bin/startup.sh

     ⑧查看日志: tail -500 /usr/local/apache-tomcat-7 .0.29/logs/catalina.out

     ⑨通过浏览器访问: http://地址:8080/solr, 看到solr主页即可。

solr入门_第1张图片

 

下面是该页面的一些简单介绍

solr入门_第2张图片

solr入门_第3张图片

 solr入门_第4张图片

solr入门_第5张图片 

solr入门_第6张图片 

 solr入门_第7张图片

 

使用java测试类solr索引操作

public class SolrManager {
	/**
	 * 添加
	 * @throws Exception
	 * @throws IOException
	 */
	@Test
	public void addIndex() throws Exception, IOException{
//		1、获取solr的服务器 用于连接solr项目
		SolrServer solrServer = new HttpSolrServer("http://localhost:8080/solr/collection1");
//		2、执行solrServer的添加方法
		SolrInputDocument doc = new SolrInputDocument();
		doc.addField("name", "solrJ添加name");
		doc.addField("content", "solrJ添加的内容");
		doc.addField("id", "2");
		solrServer.add(doc);
		solrServer.commit();
	}
	/**
	 * 修改
	 * @throws Exception
	 * @throws IOException
	 */
	@Test
	public void updateIndex() throws Exception, IOException{
//		1、获取solr的服务器 用于连接solr项目
		SolrServer solrServer = new HttpSolrServer("http://localhost:8080/solr/collection1");
//		2、执行solrServer的添加方法
		SolrInputDocument doc = new SolrInputDocument();
		doc.addField("name", "solrJ添加name修改");
		doc.addField("content", "solrJ添加的内容修改");
		doc.addField("id", "2");
		solrServer.add(doc);
		solrServer.commit();
	}
	/**
	 * 删除
	 * @throws Exception
	 * @throws IOException
	 */
	@Test
	public void deleteIndex() throws Exception, IOException{
//		1、获取solr的服务器 用于连接solr项目
		SolrServer solrServer = new HttpSolrServer("http://localhost:8080/solr/collection1");
//		solrServer.deleteById("1");
//		solrServer.deleteByQuery("id:2");
		solrServer.deleteByQuery("*:*");
		solrServer.commit();
	}
	@Test
	public void searchIndex() throws Exception, IOException{
//		1、获取solr的服务器 用于连接solr项目
		SolrServer solrServer = new HttpSolrServer("http://localhost:8080/solr/collection1");
//		2、设置查询条件
		SolrQuery solrQuery = new SolrQuery();
		solrQuery.setQuery("*:*");
//		3、执行
		QueryResponse queryResponse = solrServer.query(solrQuery);
//		4、获取结果
		SolrDocumentList results = queryResponse.getResults();
		System.out.println("总记录数:"+results.getNumFound());
		for (SolrDocument doc : results) {
			System.out.println(doc.get("id"));
			System.out.println(doc.get("name"));
			System.out.println(doc.get("content"));
		}
	}
	
	
}

 

你可能感兴趣的:(#,solr)