Solr学习笔记(一)
最近准备为一个产品做一个站内的搜索引擎,是一个java产品。由于原来做过Lucene.net,所以自然而然的就想到了使用Lucene。在复习Lucene的过程中发现了Solr这个和Lucene绑定在一起的Apache的子项目,发现这个搜索服务器正是我们想要的。原来我们做Lucene,会把索引和搜索都放在同一个网站下,也就是在网站启动的时候,或定时在网站应用程序中进行Lucene的初始化和索引,并使用Lucene搜索API提供搜索服务。这个过程,应用网站既提供了搜索内容的提供者(从数据库或文件提取数据给Lucene索引),也是搜索内容的索引者,又是用户搜索服务的结果提供者。这很明显是不够理想的,特别是在分布式集群部署环境下。Solr的出现,正好帮助我们解决了这个问题。单一的搜索服务被独立出来,提供数据的索引和搜索,并且这个搜索服务可以方便的为多个应用进行服务。余下的就是把搜索内容提供者也分离出来,形成一个或多个独立的服务。这样服务于服务之间的耦合就降低了,业务和功能的变化,都可以在某一个角色服务中处理,而不需要影响其他的服务。最重要的,Solr可以提供基于Http和XML的Web API,使它可以跨平台和语言进行服务。集群和分布式部署也变的更容易、风险更低,并且会更有针对性。新的搜索架构就会变成下图这样:
solr的安装
首先我们先来安装solr。安装solr比较简单。我的安装是在windows环境下进行,tomcat7 + solr 10.1。
1. 在网上下载solr的安装包,解压缩文件。
2. 找到solr.war文件,把文件复制到tomcat的webapps文件夹下,在这之前如果你的tomcat是运行着的,则先要停止运行。
3. 把example\resources\log4j.properties 复制到 $CATALINA_HOME/lib/ 目录下。
4. 然后把下载包中的solr-4.x.0/example/solr
文件夹复制到你希望存储的本地文件夹D:\solr下,这个文件夹会作为solr索引文件的存放目录:$SOLR_HOME。
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/确认是否配置正常。
添加Document
solr安装好以后,我们需要测试solr是否可以正确运行。solr的搜索是基于文档的,没有文档,solr什么也搜索不到。所以我们现在就要尝试着添加文档。在solr的下载包里面有一些用于测试的文档,在example\exampledocs文件夹下。另外在这个文件夹下还有一个基于java命令行的测试工具post.jar,我们将使用这些文档和工具来作为测试。
使用命令 java -Durl=http://localhost:8080/solr/update -jar post.jar *.xml 把文件夹下所有的xml文件上传到solr上去,并索引。这样添加Document的工作就算完成。
查找Document
经过上一步的添加,14个document已经被索引到solr服务器中,我们就可以进行查询了。在浏览器中输入http://localhost:8080/solr/select?q=video,服务器将会返回一个xml文档,<result>标签下有多个<doc>标签,每一个<doc>就是被搜索到的和查询参数有关的document。如下图:
至此,solr已经安装成功,下一篇将介绍solr的相关基本概念。
Solr学习笔记(一)的更多相关文章
- Solr学习笔记之3、Solr dataimport - 从SQLServer导入数据建立索引
Solr学习笔记之3.Solr导入SQLServer数据建立索引 一.下载MSSQLServer的JDBC驱动 下载:Microsoft JDBC Driver 4.0 for SQL Server ...
- Solr学习笔记之2、集成IK中文分词器
Solr学习笔记之2.集成IK中文分词器 一.下载IK中文分词器 IK中文分词器 此文IK版本:IK Analyer 2012-FF hotfix 1 完整分发包 二.在Solr中集成IK中文分词器 ...
- Solr学习笔记之1、环境搭建
Solr学习笔记之1.环境搭建 一.下载相关安装包 1.JDK 2.Tomcat 3.Solr 此文所用软件包版本如下: 操作系统:Win7 64位 JDK:jdk-7u25-windows-i586 ...
- Solr学习笔记之5、Component(组件)与Handler(处理器)学习
Solr学习笔记之5.Component(组件)与Handler(处理器)学习 一.搜索篇 拼写检查(spellCheck) 作用:用来检查用户输入的检索内容是否存在,如果不存在则给它提示出相近或相似 ...
- Solr学习笔记之4、Solr配置文件简介
Solr学习笔记之4.Solr配置文件简介 摘自<Solr in Action>. 1. solr.xml – Defines one or more cores per Solr ser ...
- solr学习笔记-入门
solr学习笔记 1.安装前准备 solr依赖java 8 运行环境,所以我们先安装java.如果没有java环境无法启动solr服务,并且会看到如下提示: [root@localhost solr- ...
- solr学习笔记-开篇
由于工作需要,近期接触了一下全文检索的相关技术,从lucenen到solr开始慢慢一路摸爬滚打,仅以此文记录自己的学习里程和记录下各种坑. 本次学习基于以下环境版本: java7,solr5.5.4( ...
- Solr学习笔记-在Tomcat上部署执行Solr
上一篇我们初识了Solr而且学习了Jetty的启动方式.查看了Solr的管理界面,这一篇我们来实如今Tomcat上部署执行Solr. 部署环境: window7 jdk1.6.0_14 Solr-4. ...
- Solr学习笔记1(V7.2)
下载压缩包http://archive.apache.org/dist/lucene/,解压后放到某一盘符下面 Windows下启动命令 :\solr-7.2.0>bin\solr.cmd st ...
- Solr学习笔记---部署Solr到Tomcat上,可视化界面的介绍和使用,Solr的基本内容介绍,SolrJ的使用
学习Solr前需要有Lucene的基础 Lucene的一些简单用法:https://www.cnblogs.com/dddyyy/p/9842760.html 1.部署Solr到Tomcat(Wind ...
随机推荐
- cf340 C. Watering Flowers
C. Watering Flowers time limit per test 2 seconds memory limit per test 256 megabytes input standard ...
- python学习易错点1
1.>>> d = {'x': 'A', 'y': 'B', 'z': 'C' } >>> for k, v in d.iteritems(): ... print ...
- 优秀大数据GitHub项目一览
http://blog.csdn.net/yaoxtao/article/details/50540485 优秀大数据GitHub项目一览 VMware CEO Pat Gelsinger曾说: 数据 ...
- vagrant 错误记录
使用Vagrant配置本地开发环境 从二零一四年开始使用vagrant+VirtualBox搭建linux开发环境,配置简单灵活,后台运行占用内存少,比vmware好用很多,果断弃用vmware转投v ...
- mysql引擎区别
MySQL数据库引擎取决于MySQL在安装的时候是如何被编译的.要添加一个新的引擎,就必须重新编译MYSQL.在缺省情况下,MYSQL支持三个引擎:ISAM.MYISAM和HEAP.另外两种类型INN ...
- AI顶级会议以及期刊
AI顶级会议以及期刊 Upcoming Top Conferences NIPS 2009 UAI 2009 ICML 2009 COLT 2009 AISTATS 2009 CVPR 2009 IC ...
- XSS Filter Evasion Cheat Sheet 中文版
前言 译者注: 翻译本文的最初原因是当我自己看到这篇文章后,觉得它是非常有价值.但是这么著名的一个备忘录却一直没有人把它翻译成中文版.很多人仅仅是简单的把文中的 各种代码复制下来,然后看起来很刁的发在 ...
- Iterator&Vector应用实例
public class test1 { /** * @param args */ public static void main(String[] args) { // TODO Auto-gene ...
- (转)MFC中获得各个类的指针/句柄 ID的总结
http://www.cnblogs.com/ylhome/archive/2009/10/06/1578478.html 一般我们使用的框架是VC提供的Wizard生成的MFC App Wizard ...
- 编译过程中,termcap.h 文件找不到路径 licli.a终于生成
编译过程中,termcap.h 文件找不到路径 查看是linux 源码下找不到termcap.h文件 安装了所有关于*cap*的源码包也不起作用 今天终于解决了这个问题,搜 ...