Solr学习笔记(一)

最近准备为一个产品作一个站内的搜索引擎,是一个java产品。因为原来作过Lucene.net,因此天然而然的就想到了使用Lucene。在复习Lucene的过程当中发现了Solr这个和Lucene绑定在一块儿的Apache的子项目,发现这个搜索服务器正是咱们想要的。原来咱们作Lucene,会把索引和搜索都放在同一个网站下,也就是在网站启动的时候,或定时在网站应用程序中进行Lucene的初始化和索引,并使用Lucene搜索API提供搜索服务。这个过程,应用网站既提供了搜索内容的提供者(从数据库或文件提取数据给Lucene索引),也是搜索内容的索引者,又是用户搜索服务的结果提供者。这很明显是不够理想的,特别是在分布式集群部署环境下。Solr的出现,正好帮助咱们解决了这个问题。单一的搜索服务被独立出来,提供数据的索引和搜索,而且这个搜索服务能够方便的为多个应用进行服务。余下的就是把搜索内容提供者也分离出来,造成一个或多个独立的服务。这样服务于服务之间的耦合就下降了,业务和功能的变化,均可以在某一个角色服务中处理,而不须要影响其余的服务。最重要的,Solr能够提供基于Http和XML的Web API,使它能够跨平台和语言进行服务。集群和分布式部署也变的更容易、风险更低,而且会更有针对性。新的搜索架构就会变成下图这样:java

image

 

solr的安装

首先咱们先来安装solr。安装solr比较简单。个人安装是在windows环境下进行,tomcat7 + solr 10.1。web

1. 在网上下载solr的安装包,解压缩文件。数据库

2. 找到solr.war文件,把文件复制到tomcat的webapps文件夹下,在这以前若是你的tomcat是运行着的,则先要中止运行。windows

3. 把example\resources\log4j.properties 复制到 $CATALINA_HOME/lib/ 目录下。浏览器

4. 而后把下载包中的solr-4.x.0/example/solr 文件夹复制到你但愿存储的本地文件夹D:\solr下,这个文件夹会做为solr索引文件的存放目录:$SOLR_HOME。tomcat

5. 运行tomcat。把下载的文件example\lib\ext目录下的全部jar包复制到tomcat的webapps目录下的solr\WEB-INF\lib文件夹下。服务器

6. 配置$SOLR_HOME。仍是在tomcat的webapps\solr\WEB-INF目录下,找到web.xml文件,放开<env-entry>节点,配置上$SOLR_HOME,以下:架构

    <env-entry>
       <env-entry-name>solr/home</env-entry-name>
       <env-entry-value>d:\solr</env-entry-value>
       <env-entry-type>java.lang.String</env-entry-type>
    </env-entry>

完成上述步骤之后,从新启动tomcat,访问http://localhost:8080/solr/确认是否配置正常。app

image

 

添加Document

solr安装好之后,咱们须要测试solr是否能够正确运行。solr的搜索是基于文档的,没有文档,solr什么也搜索不到。因此咱们如今就要尝试着添加文档。在solr的下载包里面有一些用于测试的文档,在example\exampledocs文件夹下。另外在这个文件夹下还有一个基于java命令行的测试工具post.jar,咱们将使用这些文档和工具来做为测试。webapp

使用命令 java -Durl=http://localhost:8080/solr/update -jar post.jar *.xml 把文件夹下全部的xml文件上传到solr上去,并索引。这样添加Document的工做就算完成。

image

 

查找Document

通过上一步的添加,14个document已经被索引到solr服务器中,咱们就能够进行查询了。在浏览器中输入http://localhost:8080/solr/select?q=video,服务器将会返回一个xml文档,<result>标签下有多个<doc>标签,每个<doc>就是被搜索到的和查询参数有关的document。以下图:

image

 

至此,solr已经安装成功,下一篇将介绍solr的相关基本概念。

相关文章
相关标签/搜索