solr-1.4.1 环境配置:





Solr是一个apache名下非常好用的开源索引、搜索工具,网上的资料虽多但非常杂,笔者花了一天的时间对Solr进行了较为初步的研究,对Solr的基础应用做了一定的总结。文中涉及到的配置方法并不唯一,API的使用方法也未必规范,仅希望可以通过此文让大家对solr更快的入手。

 

一、Solr的安装环境与配置:

 

1、  下载所需软件,安装配置Tomcat

首先下载Tomcat与Solr,Tomcat可在各软件站点下载得到,Solr下载地址例如以下:

http://mirror.bjtu.edu.cn/apache/lucene/solr/1.4.1/apache-solr-1.4.1.zip

Tomcat依照安装流程进行就可以,本文中Tomcat安装在X盘下,设置监听port时改为8983(默觉得8080),当然也可以在配置文件里改动,路径为X:\Tomcat 6.0\conf\server.xml,并加入编码格式为UTF-8以使得Solr可以正确解析url递送的查询要求。

 

<Connector port="8983" protocol="HTTP/1.1" connectionTimeout="20000"

           redirectPort="8443" URIEncoding="UTF-8"/>

 

2、构建文件文件夹

将apache-solr- 1.4.1.zip解压到某文件夹,文件夹例如以下图所看到的:





在X盘下建立目录solr,将解压文件里的example目录下的内容所有复制到solr中,此时solr目录下会有一个名为webapps的空目录,将解压目录中的dist目录下的apache-solr-1.4.1.war文件复制到webapps中,重命名为solr.war。

 

3、配置Solr工作环境

在Tomcat中注冊Solr。在X:\Tomcat 6.0\conf\Catalina\localhost下(文件夹不存在则手工建)创建配置文件solr.xml,内容为:

 

<Context docBase="X:/solr/webapps/solr.war" reloadable="true" > 

       <Environment name="solr/home" type="java.lang.String" value="X:/solr/solr" override="true" /> 

</Context>

 

docBase为网页公布内容,Environment为solr的配置环境。

 

4、配置索引数据格式

在X:\solr\solr\conf其中有schema.xml文件,能够配置索引数据格式。scheme.xml尽管较长但凝视丰富,并且大部分内容属于数据类型的定义,我们仅仅须要在<fields> 、</fields>标签之间加入自己的数据就可以。当然,我们也能够自己定义类型。

以例子中的第一个字段为例:

<field name="id" type="string" indexed="true" stored="true" required="true" />

类型为string,须要索引,须要存储,是一个不可为空的字段,简单易懂。

 

其它配置例如以下:

 

<uniqueKey>id</uniqueKey>

配置整个索引中唯一的键值,用来区分不同的索引条目。

 

<defaultSearchField>text</defaultSearchField>

默认的搜索字段,假设在搜索时不特殊指定字段,则会搜索这一字段。

     

<solrQueryParser defaultOperator="OR" />

搜索时对同一字段不同keyword的处理方法,依据项目须要选择“与”或者“或”。

 

<copyField source="cat" dest="text" />

<copyField source="name" dest="text" />

…………

默认搜索字段较多时能够这样设置,假设仅仅有一个字段待搜索,那么仅仅需在defaultSearchField中配置。

 

5、执行solr

启动Tomcat,訪问http://localhost:8983/solr/admin/ 就可以见到主页,从上至下共三部分,配置状态、查询与帮助链接。

http://localhost:8983/solr/admin/analysis.jsp 页面能够考察分词器的工作情况;

http://localhost:8983/solr/admin/form.jsp 页面能够模拟搜索请求构建请求url。

在solr配置完成后第一次启动Tomcat时,Tomcat中会出现非常多新的文件及目录。在Tomcat下会出现一个solr目录,那里用来存放索引;在Tomcat的webapps目录下也会出先一个solr目录,存放webproject;在Tomcat的logs目录下会出下catalina开头的日志文件,我们能够查找solr的加载异常以及索引与查询的url记录。

 

6、加入索引

在Tomcat与Solr开启的情况下,我们能够加入索引。进入X:\solr\exampledocs目录我们能够看到非常多xml文件,以及post.jar文件,这里就是用来储存xml格式的待索引文件的地方。打开solr.xml我们能够看到:

 

 <add>

       <doc>

              <field name="id">SOLR1000</field>

              <field name="name">Solr, the Enterprise Search Server</field>

              <field name="manu">Apache Software Foundation</field>

…………

              <field name="incubationdate_dt">2006-01-17T00:00:00.000Z</field>

       </doc>

 </add>

 

add标签表明这是要加入一个索引(其它标签參考solr的文档或者solr wiki),各个字段均有数据,请注意最后一行date类型的数据,与java中的不同。

 

那么如何可以将这个xml传送到solr进行索引呢,这就要用到post.jar。开启命令行,进入post.jar所在目录,执行:

 

java -Durl=http://localhost:8983/solr/update -Dcommit=yes -jar post.jar *.xml

 

程序执行成功索引便被加入。加入索引还能够通过solr提供的java接口solrj编程实现,在以下我们会讲到。

索引加入成功之后便能够通过上面提到的solr网页接口进行搜索測试。

 

7、加入中文分词

笔者使用的是IKAnalyzer的最新版本号IKAnalyzer3.2.5Stable.jar,对Solr提供了较好的支持,能够在各软件站点或CSDN较easy的搜索到。使用时将IKAnalyzer3.2.5Stable.ja放置在X:\Tomcat 6.0\webapps\solr\WEB-INF\lib目录下。

因为Solr默认选用的是lucene对应版本号自带的分词器,所以要改动配置才干转换为IKAnalyzer。相同是改动X:\solr\solr\conf下的schema.xml文件,改动部分用红色标示出:

 

<fieldType name="text" class="solr.TextField" positionIncrementGap="100">

<analyzer type="index">

              <tokenizer class="org.wltea.analyzer.solr.IKTokenizerFactory" isMaxWordLength="false" />

              …………

       </analyzer>

<analyzer type="query">

              <tokenizer class="org.wltea.analyzer.solr.IKTokenizerFactory" isMaxWordLength="true" />

              …………

       </analyzer>

</fieldType>

 

分词器均为IKAnalyzer自带的支持solr的IKTokenizerFactory,在索引时不依照最大匹配进行分词,而在搜索时依照最大匹配进行分词。

IKAnalyzer也支持用户自己定义词典。首先在X:\Tomcat 6.0\webapps\solr\WEB-INF\下建立classes目录,在classes目录中新建IKAnalyzer.cfg.xml文件,内容为:

 

  <?xml version="1.0" encoding="UTF-8" ?>

  <!DOCTYPE properties (View Source for full doctype...)>

<properties version="1.0">

       <comment>IK Analyzer 扩展配置</comment>

       <entry key="ext_dict">/mydict.dic</entry>

       <entry key="ext_stopwords">/mystopword.dic</entry>

  </properties>

 

mydict.dic为自己定义分词词典,mystopword.dic为自己定义停词词典,dic文件应当被保存为UTF-8格式,首行为空行,每一个词占一行。dic文件的存放位置也是classes文件夹。

solr-1.4.1 环境配置的更多相关文章

  1. solr单机环境配置并包含外部单机zookeeper

    首先和之前一样下载solr-5.3.1.tgz,然后执行下面命令释放文件并放置在/usr/目录下: $ .tgz $ /usr/ $ cd /usr/solr- 这个时候先不用启动solr,因为单机模 ...

  2. SolrCloud环境配置

    Solr是一个企业级搜索服务器,对外提供Web-Service接口,用户可以通过http请求,向搜索引擎提交xml或者json格式的数据,生成索引:然后可以通过http get请求查找,获取返回的xm ...

  3. solr 6.2.1环境搭建

    一:Solr简介 Solr是一个独立的企业级搜索应用服务器,它对外提供类似于Web-service的API接口.用户可以通过http请求,向搜索引擎服务器提交一定格式的XML文件,生成索引:也可以通过 ...

  4. Java开发环境配置大全

    Java开发环境配置 零章:JDK安装教程 壹章:Tomcat安装教程 贰章:IntelliJ IDEA安装教程 叁章:MySql安装教程 肆章:Maven安装教程 伍章:MongoDB安装教程 陆章 ...

  5. uboot环境配置

    uboot环境配置 通过配置uboot让它在启动过程中从tftp获取内核和设备树,并从在加载内核之后把通过启动参数将"从nfs挂载根文件系统"传入内核.这个配置主要是通过uboot ...

  6. 史上最全Windows版本搭建安装React Native环境配置

    史上最全Windows版本搭建安装React Native环境配置 配置过React Native 环境的都知道,在Windows React Native环境配置有很多坑要跳,为了帮助新手快速无误的 ...

  7. Electron的环境配置

    原文地址http://huisky.com/blog/161218121551123 本文介绍了Electron的环境配置,包括Electron下载.nodejs下载安装.NPM+Bower安装配置. ...

  8. Python开发环境配置

    好久没有写博客了,自从6月份毕业后,进入一家做书法.字画文化宣传的互联网公司(www.manyiaby.com),这段时间一直在进行前端开发,对于后端的使用很少了,整天都是什么html.css.jav ...

  9. PHP_环境配置_python脚本_2017

    Apache配置 需要安装:VC2015 httpd-2.4.16-win32-VC14.zip VC14就是2015的环境. 又比如:php-5.6.12-Win32-VC11-x86 VC11就是 ...

随机推荐

  1. java中线程队列BlockingQueue的用法

    在新增的Concurrent包中,BlockingQueue很好的解决了多线程中,如何高效安全“传输”数据的问题.通过这些高效并且线程安全的队列类,为我们快速搭建高质量的多线程程序带来极大的便利.本文 ...

  2. xss(跨站脚本攻击),crsf(跨站请求伪造),xssf

    我们常说的网络安全其实应该包括以下三方面的安全: 1.机密性,比如用户的隐私被窃取,帐号被盗,常见的方式是木马. 2.完整性,比如数据的完整,举个例子,康熙传位十四子,被当时四阿哥篡改遗诏:传位于四子 ...

  3. date 获取昨天日期

    使用date -d 选项:  date  +"%Y%m%d" -d  "+n days"         今天的后n天日期       date  +" ...

  4. 【转】UIColor对颜色的自定义

    原文网址:http://blog.sina.com.cn/s/blog_5f19ccb10101bhqh.html 在iOS开发中,我们使用UIColor来对我们的界面进行颜色设置,一般我们通过以下两 ...

  5. erlang学习笔记之基础语法

    字符串是双引号,单引号的是atom元组: 下标从1开始 X = {'test1',2,3,4}. element(1,X). 配合模式匹配,可以给元素项命名,直接不用下标标记元素项 列表增删改查 增加 ...

  6. (一)NUnit单元测试心得

    由于各种缘由,一本<.Net单元测试艺术>突然出现在了我的办公桌上,于是我的单元测试之路就此开始.通过一两个月不间断的学习,以及不断结合具体的项目做开发,再结合书上的知识对单元测试有了一些 ...

  7. 文件I/O操作(2)

    lseek函数原型为int lseek(int fd,int offset, int whence),fd为定位文件的描述符,offset为偏移量,如果是正数,则向文件末尾偏移,负数时,则向文件头偏移 ...

  8. Java NIO流 -- 缓冲区(Buffer,ByteBuffer)

    用来定义缓冲区的所有类都以Buffer类为基类,Buffer定义了缓冲区的基本特征. 直接子类: ByteBuffer 用来存储byte类型的缓冲区,可以在这种缓冲区中存储任意其他基本类型的二进制值( ...

  9. winform窗体间利用委托传值(一)

    前台:在winform窗体Form1放入pictureBox1 后台代码: namespace 点击小图变成大图 { public delegate void ClickDelegateHander( ...

  10. 用Python写的批量文件重命名

      有些时候下载图片或其他文件,文件名都怪怪的,可选的办法是下载一个文件批量重命名的软件.当然,如果想自己'DIY'一把的话编个Python脚本最好不过了. 下面的代码实现的对指定类型的文件进行批量重 ...