solr&lucene3.6.0源码解析(一)

时间:2022-10-29 03:14:17
 
本文作为系列的第一篇,主要描述的是solr3.6.0开发环境的搭建
 
首先我们需要从官方网站下载solr的相关文件,下载地址为http://archive.apache.org/dist/lucene/solr/3.6.0/
将下载的文件解压到solr-3.6.0文件夹
 
然后本人在myeclipse下建立web project,在pom.xml文件添加相关依赖,本人配置如下:
    <properties>
        <solr.version>3.6.0</solr.version>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>
    <dependencies>
        <!-- SLF4J -->        
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>log4j-over-slf4j</artifactId>
            <version>1.6.1</version>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-jdk14</artifactId>
            <version>1.6.1</version>
        </dependency>
        <dependency>
            <groupId>org.apache.geronimo.specs</groupId>
            <artifactId>geronimo-stax-api_1.0_spec</artifactId>
            <version>1.0.1</version>
        </dependency>

        <dependency>
            <groupId>org.apache.solr</groupId>
            <artifactId>solr-core</artifactId>
            <version>${solr.version}</version>
        </dependency>

        <dependency>
            <groupId>com.***.search</groupId>
            <artifactId>IKAnalyzer</artifactId>
            <version>2012-u6</version>
        </dependency>

        <dependency>
            <groupId>org.apache.solr</groupId>
            <artifactId>solr-dataimporthandler</artifactId>
            <version>${solr.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.solr</groupId>
            <artifactId>solr-dataimporthandler-extras</artifactId>
            <version>${solr.version}</version>
        </dependency>
        
        <dependency>
            <groupId>com.oracle</groupId>
            <artifactId>ojdbc14</artifactId>
            <version>10.2.0.4.0</version>
        </dependency>

    </dependencies>

面的IKAnalyzer为IK分词器,需要我们手动添加到maven的本地仓库中

然后我们需要解压我们上面下载的${solr-3.6.0}/dist/solr-3.6.0.war文件,将解压的文件复制到我们的web project的WebRoot目录里面

solr&lucene3.6.0源码解析(一)

将${solr-3.6.0}/example/resources目录中的log4j.properties文件复制到我们的web project的src目录下

同时IK分词器需要复制相关配置文件到web project的src目录

最后得到的项目结构如下:

solr&lucene3.6.0源码解析(一)

下面配置solr.home目录,将${solr-3.6.0}/example/multicore文件夹复制到我们指定的目录,假设为/home/chenying/solr-home

然后修改web project的web.xml文件,指定solr的solr.home

<env-entry>
       <env-entry-name>solr/home</env-entry-name>
       <env-entry-value>/home/chenying/solr-home</env-entry-value>
       <env-entry-type>java.lang.String</env-entry-type>
    </env-entry>

为了使solr支持IK中文分词,我们还需要修改${sole.home}目录中相关core的conf目录中的schemal.xml添加支持IK的fieldType和field 

<fieldType name="text_ik" class="solr.TextField" > 
      <analyzer type="index"> 
         <tokenizer class="org.wltea.analyzer.solr.IKTokenizerFactory" useSmart ="false"/> 
      </analyzer> 
      <analyzer type="query">
           <tokenizer class="org.wltea.analyzer.solr.IKTokenizerFactory" useSmart ="false"/> 
      </analyzer> 
    </fieldType>
<field name="ik_field" type="text_ik" indexed="true" stored="true" multiValued="false"/> 

关于solrconfig.xml文件和schemal.xml文件的详细配置,待后文分解

至此配置完毕,可以在servlet容器(如tomcat)中运行该项目 

--------------------------------------------------------------------------- 

本系列solr&lucene3.6.0源码解析系本人原创 

转载请注明出处 博客园 刺猬的温驯 

本人邮箱: chenying998179#163.com (#改为@)

本文链接http://www.cnblogs.com/chenying99/p/3440758.html