在Solr中配置和使用ansj分词

  在上一节【编译Ansj之Solr插件】中介绍如何编译ansj分词在solr(lucene)环境中使用的接口,本章将介绍如何在solr中使用ansj,其步骤主要包括:下载或者编译ansj和nlp-lang等jar包、在schema中配置相关类型、将ansj和nlp-lang等jar包配置到solr中、测试ansj分词效果。

一、下载或者编译ansj-seg和nlp-lang等jar包。

   1、您可以到 http://maven.ansj.org/org/ansj/ansj_seg/  | http://maven.ansj.org/org/nlpcn/ 中下载相关jar包。

    ansj-seg相关jar包,如下图所示:

    

nlp-lang 是ansj-seg分词中关于自然语言处理相关工具类,功能比较强大:

   

  2、下载相关源码,自己编译。

    这种是相对复杂的,但是如果长久使用,这种是很有必要的。对于这种优秀的分词,我们更有必要好好研究一番。

    github地址:https://github.com/NLPchina/ansj_seg

    git客户端地址:http://git-scm.com/download/

git下载源码命令:git clone  https://github.com/NLPchina/ansj_seg.git

    下载后的文件结构如下:

   

   可见代码是用maven组中管理的。对于maven的安装配置本文旧粗略带过,主要包括:

    下载maven相关包,解压:

     

   配置环境变量M2_HOME:C:\apache-maven-3.2.1

   配置PATHb环境变量:%M2_HOME%\bin;

   mvn常有命令:mvn clean install#清理本地缓存、下载依赖jar包 可以添加-DskipTests=true忽略单元测试;mvn eclipse:clean #清理mvn生成的eclipse工程;mvn eclipse:eclipse #根据pom.xml生成eclipse工程。

   步骤:

     在源码根路径下执行: mvn clean install -DskipTests=true  命令,在target目录下生成jar包。

    

    target目录:

    

   同义的道理,可以编译nlp-lang jar包,地址:https://github.com/NLPchina/nlp-lang   

二、在solr schema.xml中配置好ansj字段类型。

  1、创建ansj类型。

    找到schema.xml,添加ansj类型text_ansj: 

	<!--ansj start -->

	<fieldType name="text_ansj" class="solr.TextField" positionIncrementGap="100">
    <analyzer type="index">
         <tokenizer class="org.ansj.solr.AnsjTokenizerFactory"  isQuery="false"/>
    </analyzer>
    <analyzer type="query">
        <tokenizer class="org.ansj.solr.AnsjTokenizerFactory"/>
    </analyzer>
</fieldType>

	<!--ansj end -->

  org.ansj.solr.AnsjTokenizerFactory 是我们编译的ansj-lucene插件。

  2、配置需要索引的字段。    

   <!-- ansj_test field -->
   <field name="POI_OID" type="string" indexed="false" stored="true"/>
   <field name="POI_NAME" type="text_ansj" indexed="true" stored="false"/>
   <field name="POI_NAME_SUGGEST" type="string" indexed="false" stored="true"/>
   <field name="POI_ADDRESS" type="text_ansj" indexed="true" stored="false"/>
   <field name="POI_ADDRESS_SUGGEST" type="string" indexed="false" stored="true"/>
   <field name="POI_PHONE" type="string" indexed="true" stored="true"/>
   <field name="POI_TYPE" type="string" indexed="true" stored="true" multiValued="true"/>
   <field name="POI_URL" type="string" indexed="false" stored="true"/>
   <field name="POI_DIANPING" type="string" indexed="true" stored="true" />
   <field name="POI_BRAND" type="string" indexed="true" stored="true"/>
   <field name="POI_CITY" type="string" indexed="true" stored="true" multiValued="true"/>
   <field name="POI_TAG" type="text_ansj" indexed="true" stored="true"/>
   <field name="POI_LAT" type="double" indexed="false" stored="true"/>
   <field name="POI_LON" type="double" indexed="false" stored="true"/>
   <field name="POI_DATA_TYPE" type="string" indexed="true" stored="false"/>

三、在solr环境中配置好ansj。

  在编译好的ansj-seg、nlp-lang、ansj_lucene4_plug 放到solr war包的lib下。

  

  

配置ansj相关词库和配置文件,这些配置文件在ansj源码目录下:

  

  把这三个配置文件放到solr程序WEB-INF/classes目录下,classes目录不存在则手动创建。

    

四、测试ansj分词效果。

  ansj配置好了以后,把solr所在的tomcat启动一下。用solr管理页面查看效果:

  1、测试分词 "南京市长江大桥”

  

    备注:在文本框中输入“南京市长江大桥” 点击右边蓝色的按钮“Analyse Values”

文章转载,请注明出处:http://www.cnblogs.com/likehua/p/4481219.html

时间: 2024-11-06 07:27:22

在Solr中配置和使用ansj分词的相关文章

在Solr中配置中文分词IKAnalyzer

李克华 云计算高级群: 292870151 交流:Hadoop.NoSQL.分布式.lucene.solr.nutch 在Solr中配置中文分词IKAnalyzer 1.在配置文件schema.xml(位置{SOLR_HOME}/config/下),配置信息如下: <!-- IKAnalyzer 中文分词-->     <fieldType name="text_ik" class="solr.TextField">         <

Solr入门 Linux中 配置tomcat7 jdk 1.7

一.环境准备: 系统环境:CentOS 6.5 Tomcat 7.0.26 jdk-7u17-linux-x64.rpm solr-4.10.1.tgz 首先将软件包上传到/tmp目录下 1.  jdk安装 ]# rpm -ivh jdk-7u17-linux-x64.rpm Preparing...               ########################################### [100%] 1:jdk                   #########

如何在solr中添加ik分词器

分词技术是搜索技术里面的一块基石.很多人用过,如果你只是为了简单快速地搭一个搜索引擎,你确实不用了解太深.但一旦涉及效果问题,分词器上就可以做很多文章.例如, 在我们实际用作电商领域的搜索的工作中,类目预判的实现就极须依赖分词,至少需要做到可以对分词器动态加规则.再一个简单的例子,如果你的优化方法就是对不同的词分权重,提高一些重点词的权重的话,你就需要依赖并理解分词器. 下面将介绍如何在solr中为core:simple的title添加分词,承接上一篇博文(http://simplelife.b

[Nutch]Solr配置自定义的中文分词器mmseg4j

上一篇博文我们有使用LUKE工具来查看使用solrindex产生的索引的具体内容,从里面可以看到,默认的分词很乱,所以这篇博文我们就使用mmseg4j中文分词器. 1. 下载mmseg4j 点击mmseg4j-1.8.5 .zip,进入下载页面. 2. 解压mmseg4j-1.8.5.zip 将下载的mmseg4j-1.8.5.zip文件放到workspace目录下面,在workspace目录使用如下命令解压到mmseg4j-1.8.5目录: unzip mmseg4j-1.8.5\ .zip

Solr的配置和在java中的使用

Solr是一个全局站内搜索引擎,可以快速的搜索出结果. Solr依赖于tomcat,把Solr的war包放到tomcat中即可运行. 使用solr,需要在solr的schema.xml中配置solr与java的映射关系,便于存放数据,在schema.xml中配置如下关系. <fieldType name="text_ik" class="solr.TextField"> <analyzer class="org.wltea.analyze

solr schema 配置详解

一.字段配置(schema) schema.xml位于solr/conf/目录下,类似于数据表配置文件, 定义了加入索引的数据的数据类型,主要包括type.fields和其他的一些缺省设置. 1.先来看下type节点,这里面定义FieldType子节点,包括name,class,positionIncrementGap等一些参数. name:就是这个FieldType的名称. class:指向org.apache.solr.analysis包里面对应的class名称,用来定义这个类型的行为. [

在Lucene或Solr中实现高亮的策略

一:功能背景 最近要做个高亮的搜索需求,以前也搞过,所以没啥难度,只不过原来用的是Lucene,现在要换成Solr而已,在Lucene4.x的时候,散仙在以前的文章中也分析过如何在搜索的时候实现高亮,主要有三种方式,具体内容,请参考散仙以前的2篇文章: 第一:在Lucene4.3中实现高亮的方式  http://qindongliang.iteye.com/blog/1953409 第二:在Solr4.3中服务端高亮的方式  http://qindongliang.iteye.com/blog/

(solr系列:四)将mysql数据库中的数据导入到solr中

在前面的博文中,已完成了在tomcat中对solr的部署,为solr添加了一个自定义的core,并且引入了ik分词器. 那么该如何将本地的mysql的数据导入到solr中呢? 准备工作: 1.mysql数据源:myuser库中的user表(8条数据) /* Navicat MySQL Data Transfer Source Server         : localhost Source Server Version : 50521 Source Host           : local

全文检索引擎Solr的配置

描述: 在Linux环境下实现高速的全文检索 一.当前环境: CentOS (Linux) 6.3 64 bit 二.所需软件 1.Java的JDK 2.Solr最新稳定版Solr-4.5 3.Tomcat最新稳定版Tomcat-7.0.42 4.IK Analyzer最新稳定版分词器IKAnalyzer2012 三.Tomcat安装 1.  安装jdk yum -y install java-1.6.0-openjdk java-1.6.0-openjdk-devel 2.  下载Tomcat