solr-1.4.1 环境配置

2024-06-10 19:58
文章标签 配置 1.4 环境 solr

本文主要是介绍solr-1.4.1 环境配置,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

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盘下,设置监听端口时改为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" />
搜索时对同一字段不同关键字的处理方法,根据项目需要选择“与”或者“或”。
 
<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文件夹,存放web工程;在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较容易的搜索到。使用时将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 环境配置的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1049119

相关文章

SpringBoot3.4配置校验新特性的用法详解

《SpringBoot3.4配置校验新特性的用法详解》SpringBoot3.4对配置校验支持进行了全面升级,这篇文章为大家详细介绍了一下它们的具体使用,文中的示例代码讲解详细,感兴趣的小伙伴可以参考... 目录基本用法示例定义配置类配置 application.yml注入使用嵌套对象与集合元素深度校验开发

IntelliJ IDEA 中配置 Spring MVC 环境的详细步骤及问题解决

《IntelliJIDEA中配置SpringMVC环境的详细步骤及问题解决》:本文主要介绍IntelliJIDEA中配置SpringMVC环境的详细步骤及问题解决,本文分步骤结合实例给大... 目录步骤 1:创建 Maven Web 项目步骤 2:添加 Spring MVC 依赖1、保存后执行2、将新的依赖

SpringBoot基于配置实现短信服务策略的动态切换

《SpringBoot基于配置实现短信服务策略的动态切换》这篇文章主要为大家详细介绍了SpringBoot在接入多个短信服务商(如阿里云、腾讯云、华为云)后,如何根据配置或环境切换使用不同的服务商,需... 目录目标功能示例配置(application.yml)配置类绑定短信发送策略接口示例:阿里云 & 腾

如何为Yarn配置国内源的详细教程

《如何为Yarn配置国内源的详细教程》在使用Yarn进行项目开发时,由于网络原因,直接使用官方源可能会导致下载速度慢或连接失败,配置国内源可以显著提高包的下载速度和稳定性,本文将详细介绍如何为Yarn... 目录一、查询当前使用的镜像源二、设置国内源1. 设置为淘宝镜像源2. 设置为其他国内源三、还原为官方

CentOS7更改默认SSH端口与配置指南

《CentOS7更改默认SSH端口与配置指南》SSH是Linux服务器远程管理的核心工具,其默认监听端口为22,由于端口22众所周知,这也使得服务器容易受到自动化扫描和暴力破解攻击,本文将系统性地介绍... 目录引言为什么要更改 SSH 默认端口?步骤详解:如何更改 Centos 7 的 SSH 默认端口1

Maven的使用和配置国内源的保姆级教程

《Maven的使用和配置国内源的保姆级教程》Maven是⼀个项目管理工具,基于POM(ProjectObjectModel,项目对象模型)的概念,Maven可以通过一小段描述信息来管理项目的构建,报告... 目录1. 什么是Maven?2.创建⼀个Maven项目3.Maven 核心功能4.使用Maven H

SpringBoot多数据源配置完整指南

《SpringBoot多数据源配置完整指南》在复杂的企业应用中,经常需要连接多个数据库,SpringBoot提供了灵活的多数据源配置方式,以下是详细的实现方案,需要的朋友可以参考下... 目录一、基础多数据源配置1. 添加依赖2. 配置多个数据源3. 配置数据源Bean二、JPA多数据源配置1. 配置主数据

Spring 基于XML配置 bean管理 Bean-IOC的方法

《Spring基于XML配置bean管理Bean-IOC的方法》:本文主要介绍Spring基于XML配置bean管理Bean-IOC的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一... 目录一. spring学习的核心内容二. 基于 XML 配置 bean1. 通过类型来获取 bean2. 通过

如何使用Nginx配置将80端口重定向到443端口

《如何使用Nginx配置将80端口重定向到443端口》这篇文章主要为大家详细介绍了如何将Nginx配置为将HTTP(80端口)请求重定向到HTTPS(443端口),文中的示例代码讲解详细,有需要的小伙... 目录1. 创建或编辑Nginx配置文件2. 配置HTTP重定向到HTTPS3. 配置HTTPS服务器

SpringBoot中配置Redis连接池的完整指南

《SpringBoot中配置Redis连接池的完整指南》这篇文章主要为大家详细介绍了SpringBoot中配置Redis连接池的完整指南,文中的示例代码讲解详细,具有一定的借鉴价值,感兴趣的小伙伴可以... 目录一、添加依赖二、配置 Redis 连接池三、测试 Redis 操作四、完整示例代码(一)pom.