设为首页 收藏本站
查看: 937|回复: 0

[经验分享] solr搜索引擎的使用(2)--分词器

[复制链接]

尚未签到

发表于 2016-12-16 08:24:14 | 显示全部楼层 |阅读模式
 
  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)
DSC0000.png
  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可以查询到刚才添加的数据,截图如下: DSC0001.png
  方式二:从数据库中获取
  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出查询,存在刚才表中的数据,则索引数据导入成功。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-314901-1-1.html 上篇帖子: solr in action翻译-第三章Solr的关键概念 3.1 下篇帖子: Solr : 基于Lucene的可扩展集群搜索服务器
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表