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. 第一个MVC模式的程序

    数据库 是一个SQL sever数据库,结构很简单,创建名为firstMVC的数据库,只包含一个数据表(名称为Persons),其中共有三列,分别用于保存人员(persons)的ID.姓名以及创建日期 ...

  2. Asp.Net MVC 模型(使用Entity Framework创建模型类) - Part.1

    这篇教程的目的是解释在创建ASP.NET MVC应用程序时,如何使用Microsoft Entity Framework来创建数据访问类.这篇教程假设你事先对Microsoft Entity Fram ...

  3. EF框架step by step(8)—Code First DataAnnotations(2)

    上一篇EF框架step by step(7)—Code First DataAnnotations(1)描述了实体内部的采用数据特性描述与表的关系.这一篇将用DataAnnotations描述一下实体 ...

  4. HDU 2121 Ice_cream’s world II 最小树形图

    这个题就是需要求整个有向带权图的最小树形图,没有指定根,那就需要加一个虚根 这个虚根到每个点的权值是总权值+1,然后就可以求了,如果求出来的权值大于等于二倍的总权值,就无解 有解的情况,还需要输出最根 ...

  5. Clean Code – Chapter 2: Meaningful Names

    Use Intention-Revealing Names The name should tell you why it exists, what it does, and how it is us ...

  6. SQL注入攻击及防范

    一.什么是SQL注入1.SQL注入的定义     SQL注入(SQL Injection) 利用了程序中的SQL的漏洞,进行攻击的方法. 2.SQL注入举例  1)利用SQL语法错误获取数据库表的结构 ...

  7. Tomcat普通用户启动注意事项

    今天项目部署上线,老大跟我建议说不要使用root用户部署,试用普通用户运行.刚开始没想什么,后来部署的时候碰到各种权限问题. 记录一下,以防忘记了. 1.使用普通用户启动失败. 首先不用想就去$TOM ...

  8. 一切不以用户为中心的O2O 都是耍流氓

    今天去万达广场逛街,手机搜了下附近的Wifi,发现有万达的免费Wifi,想起前些日子网上说万达要做O2O的试运营,于是尝试连接了下,结果弹出页面,要输入手机号,然后发送验证码才能登陆,结果输入手机号, ...

  9. 第十三章、学习 Shell Scripts 简单的 shell script 练习

    简单的 shell script 练习 简单范例 对谈式脚本:变量内容由使用者决定 [root@www scripts]# vi sh02.sh #!/bin/bash # Program: # Us ...

  10. WIN7 如何关闭Aero

    控制面板-性能信息和工具-调整视觉效果-视觉效果 里面选择 调整为最佳性能,这样就关闭了win7的Aero特效