solr搜索引擎的使用(2)--分词器

 

3、分词器的配置过程

    I)在solr_home目录下新建目录dic,将下载的好的词库(本处使用的是sogou的词库)解压,拷贝其中的SogouLabDic.dic到dic目录下。

   II)修改schema.xml(solr-home \collection1\conf)文件,使分词器起到作用。在schema.xml的<types>、<fields>新增以下配置:

      在<types></types>中添加以下部分(dicPath为刚才的词库目录)

 <!--sogou-->

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

                     <analyzer>

                            <tokenizer class="com.chenlb.mmseg4j.solr.MMSegTokenizerFactory" mode="complex" dicPath="D:\solr\solr-tomcat\dic">

                            </tokenizer>

                     </analyzer>

              </fieldType>

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

                     <analyzer>

                            <tokenizer class="com.chenlb.mmseg4j.solr.MMSegTokenizerFactory" mode="max-word" dicPath="D:\solr\solr-tomcat\dic">

                            </tokenizer>

                     </analyzer>

              </fieldType>

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

                     <analyzer>

                            <tokenizer class="com.chenlb.mmseg4j.solr.MMSegTokenizerFactory" mode="simple" dicPath="D:\solr\solr-tomcat\dic">

                            </tokenizer>

                     </analyzer>

              </fieldType>

    III)将分词器mmseg4j-1.9.1解压,拷贝mmseg4j-1.9.1\dist下的jar包到solr.war的lib目录下。

    IV)重新启动tomcat进入solr主页,出现以下界面则刚才配置的分词器生效(Analyse Fieldname / FieldType:text_maxWord为刚才配置的types)
solr搜索引擎的使用(2)--分词器

 

4、 创建索引

      I)在<fields></fields>中添加如下内容(field和type是配套使用,field name是索引的列名) 其中的copyField放在<fields></fields>的外面,此处就是根据bInfo字段可以匹配bookName、bookDesc以及bookAuth这3列的数据。

<field name="bookName" type="text_maxWord" indexed="true" stored="true"/>
<field name="bookDesc" type="text_maxWord" indexed="true" stored="true"/>
<field name="bookAuth" type="text_maxWord" indexed="true" stored="true"/>
<field name="bInfo" type="text_maxWord" indexed="true" multiValued="true"/>
<copyField source="bookName" dest="bInfo"/>
<copyField source="bookDesc" dest="bInfo"/>
<copyField source="bookAuth" dest="bInfo"/>


 

      II)添加数据

           方式一:通过solr后台手工录入

                      进入solr管理后台,进入collection1,选择Documents,选择Document Type(此处选择xml作为实例),在Documents出添加如下xml数据:

<doc>
<field name="id">id</field>
<field name="bookName">think in java</field>
<field name="bookAuth">john</field>
<field name="bookDesc">一本很不错的介绍java的书</field>
</doc>

                     单击“Submit Document”,提交数据。然后进入Query可以查询到刚才添加的数据,截图如下:solr搜索引擎的使用(2)--分词器

              方式二:从数据库中获取

                             A)数据库创建数据:新建表book_info,并插入几条数据做为测试,语句如下:

create table BOOK_INFO
(
  BOOK_ID   INTEGER,
  BOOK_NAME VARCHAR2(150),
  BOOK_AUTH VARCHAR2(30),
  BOOK_DESC CLOB
);

                           B)提供对应的jdbc驱动:将测试数据使用的驱动jar包拷贝到solr.war的lib目录下。

                           C)在solr-home\collection1\conf目录下新建目录db,在db文件夹中新建db-data-config.xml内容如下(column为表的列表,name为对应的索引名  ):

<?xml version="1.0" encoding="UTF-8"?>
<dataConfig>
       <dataSource type="JdbcDataSource" driver="oracle.jdbc.driver.OracleDriver" url="jdbc:oracle:thin:@192.168.56.26:1521:gosp" user="newChannel" password="newChannel"/>
             <document name="bookInfo">
         <entity name="bookInfo" transformer="ClobTransformer" query="select * from book_info">
             <field column="BOOK_ID" name="id" />
                                                         <field column="BOOK_NAME" name="bookName"/>
             <field column="BOOK_AUTH"  name="bookAuth" />
             <field column="BOOK_DESC" name="bookDesc" clob="true"/>
         </entity>
     </document>
 </dataConfig>

                         D)修改solr-home\collection1\conf目录下的solrconfg.xml,在相应的位置添加如下代码(告诉solr刚才配置的db-data-config.xml的位置):

<requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">
     <lst name="defaults">
       <str name="config">D:\solr\solr-tomcat\solr\collection1\conf\db\db-data-config.xml</str>
     </lst>
  </requestHandler>

                         E)将solr-4.4.0.zip解压,然后将/dist中的solr-dataimporthandler-4.4.0.jar以及solr-dataimporthandler-extras-4.4.0.jar拷贝到solr.war的lib目录下。 

                         F)重启启动tomcat,进入collection1/dataimport,command选择full-import,单击Execute,全量将该表的数据导入到索引。然后在Query出查询,存在刚才表中的数据,则索引数据导入成功。

你可能感兴趣的:(搜索引擎,Lucene,Solr)