`

Solr安装及集成javaWeb

    博客分类:
  • solr
阅读更多

1.下载solr-4.7.1

http://www.apache.org/dyn/closer.cgi/lucene/solr/4.7.1

环境需求:java 1.6版本以上;solr运行需要java serverlet 容器,默认使用jetty,或者tomcat,jboss等等。

2.Tomcat部署solr:

1. 安装好jdk 1.6以上(我用是jdk 1.7.0_15)安装好tomcat(我用是apache-tomcat-7.0.6),并配置环境变量。

2. 将解压包中的solr-4.7.1/dist/solr-4.7.1.war复制到tomcat_dir/webapps/目录,并命名为solr.war。

3.  将solr-4.7.1/example/lib/ext/目录下的jar文件复制到tomcat/lib目录下,将solr-4.7.1/example/resources/下的log4j.properties文件复制到tomcat_dir/lib目录下;

切把 solr-4.7.1/example/solr,复制到tomcat_dir/bin下。

 

 4.修改tomcat_dir/conf/server.xml

1
2
3
4
 <Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" 
               URIEncoding="UTF-8" />

5.创建solr.xml,存放在路径:tomcat/conf/Catalina/localhost/solr.xml,内容:

1
2
3
4
<Context path="/solr" docBase="F:\Tomcat 7.0\webapps\solr.war"
         debug="0" crossContext="true">
  <Environment name="solr/home" type="java.lang.String" value="FF:\Tomcat 7.0\bin\solr\" override="true" />
</Context>

 注意:上面的docBase和value路径中不能存在中文字符,否则会出现404错误。

 此时若安装及配置都正确,在浏览器中输入:http://127.0.0.1:9000/solr/,会出现Solr的管理界面:

 

 

6.将F:\Tomcat 7.0\webapps下的solr.war包,启动项目解压;然后再添加几个jar包:

    solr-4.7.1\dist\solr-dataimporthandler-4.7.1.jar;

    solr-4.7.1\dist\solr-dataimporthandler-extras-4.7.1.jar;

    还要加载数据库驱动包:mysql-connector-java-3.1.13-bin.jar

7、在F:\Tomcat 7.0\bin\solr\collection1\conf 下的solrconfig.xml增加以下数据库配置:

1
2
3
4
5
<requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">     
   <lst name="defaults">     
     <str name="config">data-config.xml</str>     
   </lst>     
  </requestHandler>

8.将tomcat\bin\solr\collection1\conf下增加data-config.xml文件,内容如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<dataConfig>  
    <dataSource type="JdbcDataSource"  
   driver="com.mysql.jdbc.Driver"  
   url="jdbc:mysql://192.168.1.221:3306/tmsdb"  
   user="root"  
   password="123456"/>  
    <document name="content">  
        <entity name="node" query="select id,author,title,content from solrdb">  
            <field column="id" name="id" />  
            <field column="author" name="author" />  
            <field column="title" name="title" />  
            <field column="content" name="content" />
        </entity>  
    </document>  
</dataConfig>

9.增加中文分词器,ik-analyzer的配置如下:

目前的中文分词主要有两种 
    1,基于中科院ICTCLAS的隐式马尔科夫hhmm算法的中文分词器,例如smartcn等。(不支持自定义扩展词库) 
    2,基于正向迭代最细粒度切分算法(正向最大匹配并且最细分词)例如IK,庖丁等(支持自定义扩展词库) 

安装分词前,可以去下载IK的分词包 :

1
IK-Analyzer-4.7.1-0.0.1-SNAPSHOT.jar

下载完毕后,将此包放进tomcat\solr的\WEB-INF\lib下面:tomcat\webapps\solr\WEB-INF\lib  。

下面需要在solr的schemal.xml进行分词器注册:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<!--  配置IK分词器 -->  
    <fieldType name="text_ik" class="solr.TextField" positionIncrementGap="100">  
      <analyzer type="index">  
      <!--  分词-->  
        <tokenizer class="org.wltea.analyzer.lucene.IKTokenizerFactory"/>  
         <!--   禁用词过滤根据情况使用-->  
        <!-- <filter class="org.wltea.analyzer.lucene.IKStopFilterFactory"/> -->  
      </analyzer>  
      <analyzer type="query">  
       <!--  分词-->  
        <tokenizer class="org.wltea.analyzer.lucene.IKTokenizerFactory"/>  
        <!--   禁用词过滤根据情况使用-->  
        <!-- <filter class="org.wltea.analyzer.lucene.IKStopFilterFactory"/>-->  
      </analyzer>  
    </fieldType>

最后还得配置一个引用字段就OK了

1
 <field name="ik" type="text_ik" indexed="true" stored="true" multiValued="true"/>

②它的安装部署十分简单,将IKAnalyzer2012.jar部署亍项目的lib目录中;IKAnalyzer.cfg.xml不stopword.dic文件放置在class根目录(对于web项目,通常是WEB-I NF/classes目彔,同hibernate、log4j等配置文件相同)下即可 ;然后配置solr4.7中schema.xml配置解析器:

1
2
3
4
5
6
7
<schema name="example" version="1.1"
    …… 
    <fieldType name="text" class="solr.TextField"
        <analyzer class="org.wltea.analyzer.lucene.IKAnalyzer"/> 
    </fieldType>
    …… 
</schema>

10. solr schema.xml配置总结

    schema.xml 在solr/conf/目录下,类似于数据表配置文件。

为了改进性能,可以采取以下几种措施:

①.   将所有只用于搜索的,而不需要作为查询结果的field(特别是一些比较大的field)的stored设置为false。

②.   将不需要被用于搜索的,而只是作为查询结果返回的field的indexed设置为false。 

③.   删除所有不必要的copyField声明,根据需要决定是否进行存储。

④.   为了索引字段的最小化和搜索的效率,将所有的 text fields的index都设置成false,然后使用copyField将他们都复制到一个总的 text field上,然后对他进行搜索。

⑤.   使用尽可能高的Log输出等级,减少日志量。可以在solr/admin 中的 LOGGING 进行设置。

    特珠说明:

    1.   高亮是基于分词的,所有存储需要高亮显示的字段 一定要分词(text)才能高亮显示。

    2.   排序字段 是不能当  查询过滤的条件。

文本主要配置项:

    ①.   field 类型定义

          重点是中文分词的添加 

    ②.   field 各属性定义

          name     type类型   indexed是否建立索引  stored是否存储 required 是否必填项 multiValued多值存储

    ③.   唯一key

         <uniqueKey>id</uniqueKey>

         文档的唯一标识, 必须填写这个field(除非该field被标记required="false"),否则solr建立索引报错。

    ④.   默认搜索字段 field

         <defaultSearchField>text</defaultSearchField>

         如果搜索参数中没有指定具体的field,那么这个做为默认的域。

    ⑤.   搜索参数短语间逻辑

         <solrQueryParser defaultOperator="OR"/>

          配置搜索参数短语间的逻辑,可以是"AND|OR"。

          备注: AND是交集,OR是并集

    ⑥.  复制字段

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

         将多个字段的值 复制至 一个字段中,如果被复制的字段都设置为stored,那个这个字段务必不要设置成stored=true

    ⑦.  自定义评分器

         <similarity class="......SolrSimilarity"/>

          SolrSimilarity 是继承 DefaultSimilarity的子类,或者实现评分器接口的类。

 

解析:multiValued:是否包含多个值,如果要使用后面的copyField将其他字段放入默认搜索中就必须允许多指,否则会报:multiple values encountered for non multiValued copy field content

defaultSearchField配置默认搜索索引,copyField可以将 title、author字段添加至content默认搜索中

1
2
3
4
5
<uniqueKey>id</uniqueKey>  
 <defaultSearchField>content</defaultSearchField>  
 <solrQueryParser defaultOperator="OR"/>  
<copyField source="title" dest="content"/>  
<copyField source="author" dest="content"/>

 

分享到:
评论

相关推荐

    solr教程(配置+集成)

    Solr是一个独立的企业级应用服务器,它对外提供类似于Web-service的API接口。用户可以通过http请求,向搜索引擎服务器提交一定格式的xml文件, 生成索引;也可以通过Http Get操作提出查找请求,并得到XML格式的返回...

    solr与javaWeb开发

    总结,Solr与JavaWeb开发的结合使得开发者能够轻松集成强大的全文搜索功能,而分词器的使用则进一步优化了对中文内容的处理。通过上述步骤,开发者可以搭建一个基础的Solr环境,并实现从数据库导入数据以及进行全文...

    solr安装到Linux系统

    在Linux系统上如何搭建了solr搜索服务,同时运用到项目中

    Tomcat和solr安装配置说明

    Tomcat和solr安装配置说明,详细记录了Tomcat和solr安装配置

    solr安装文档-Windows.docx

    ### Solr在Windows环境下的安装与配置指南 #### 一、概述 Solr是一款高性能、可伸缩的企业级搜索平台,被广泛应用于各种网站和应用之中。本文档旨在指导用户如何在Windows环境下快速安装和配置Solr,以便于进行...

    solr安装配置

    本文将详细介绍如何在本地环境中安装和配置 Solr。 首先,我们需要准备的环境是 JDK 和 Tomcat。Solr 建立在 Java 之上,所以必须先安装 JDK 1.6 或以上版本。在安装 JDK 后,需要设置相应的环境变量,例如 `JAVA_...

    Solr安装部署攻略

    本教程将指导你如何安装并部署Solr 5.3版本,以及如何将其与Tomcat容器集成。 1. **Solr简介** Apache Solr是基于Lucene的搜索平台,它提供了一个分布式、可扩展、易用的搜索和导航基础设施。Solr支持多种数据源,...

    solr安装和介绍

    本文详细介绍了 Solr 的安装过程及 SolrCore 的配置方法。通过上述步骤,用户可以成功地在 CentOS 7 上部署并配置 Solr 搜索服务。此外,文中还提供了关于 Solr 目录结构和配置文件的深入解释,有助于更好地理解和...

    solr安装部署文档

    Solr 安装部署文档 Solr 是一个基于 Lucene 的搜索服务器,提供了强大的全文搜索功能。下面是基于 Solr 5.5.5 的安装部署文档,包含 Solr 导入 Oracle 数据库的步骤。 Solr 安装部署 1. 下载 Solr 5.5.5,地址:...

    solr安装与配置

    ### Solr安装与配置知识点详解 #### 一、Solr简介 Solr是一款开源的、高性能的全文搜索引擎,广泛应用于企业级搜索系统中。它基于Lucene开发,并提供了丰富的功能和扩展性,支持多种数据源索引和检索,能够轻松地...

    solr安装教程,安装包

    本人最近学习了传智播客的一个电商项目,把里面用到的工具和大家分享一下,方便大家的javaweb的学习。-Solr是一个高性能,采用Java5开发, Solr Solr 基于Lucene的全文搜索服务器。同时对其进行了扩展,提供了比...

    Solr安装与配置

    首先,安装 Solr 需要先确保你的系统已经安装了 Java Development Kit (JDK) 1.6 或以上版本,因为 Solr 需要依赖 JDK 来运行。你可以从 Oracle 的官方网站下载并安装适合你操作系统的 JDK。安装完成后,需要配置...

    ubuntu下安装solr4.9详细介绍

    文档中详细介绍了如何在ubuntu下面安装solr-4.9.0,以及在安装过程中出现的问题和解决办法

    solr安装于部署

    ### Solr安装与部署详细教程 #### 一、Solr简介 Solr是一款开源的、高性能的全文搜索引擎,基于Java开发。它支持多种语言、高度可扩展,并且提供了丰富的功能来满足不同场景的需求。Solr通常被用于构建企业级搜索...

    solr安装配置(单核、多核)

    本篇将详细介绍如何在本地环境中安装并配置 Solr,包括单核心(core)和多核心的设置。 **一、Solr 单核心安装配置** 1. 首先,我们需要从 Apache Tomcat 官网下载 Tomcat,这将作为 Solr 的服务器容器。Tomcat ...

    solr的安装与使用

    Solr安装与使用 Solr是一款功能强大的搜索引擎,能够帮助我们快速搭建企业搜索平台。在本文中,我们将详细介绍Solr的安装和使用过程。 一、安装Solr 首先,我们需要下载Solr的安装包。这里我们使用的是Solr 1.3...

    ambari离线安装solr所需文件

    7. **安装Solr**:在Ambari的管理界面中,选择离线安装模式,然后添加并启动Solr服务。Ambari会根据你的配置和定义文件,在每个节点上安装和配置Solr。 8. **验证安装**:安装完成后,可以通过Ambari的监控功能检查...

Global site tag (gtag.js) - Google Analytics