solr4.3默认的分词器

2024-03-18 19:38
文章标签 默认 分词器 solr4.3

本文主要是介绍solr4.3默认的分词器,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

solr4.3默认的分词器是一元分词器,这个本来就是对英文进行分词的,英文大部分就是典型的根据空格进行分词,而中文如果按照这个规则,那么显然是要有很多的冗余词被分出来,一些没有用的虚词,数词,都会被分出来,影响效率不说,关键是分词效果不好,所以可以利用solr的同步发行包smartcn进行中文切词,smartcn的分词准确率不错,但就是不能自己定义新的词库,不过smartcn是跟solr同步的,所以不需要额外的下载,只需在solr的例子中拷贝进去即可,下面给出路径图和安装solr4.3的smartcn分词过程
无论安装那种分词器,大部分都有2个步骤,第一步是拷贝jar包到solr的lib中



Java代码 复制代码  收藏代码
  1. C:\桌面\solr-4.3.0\contrib\analysis-extras\lucene-libs  
  2. F:\eclipse10tomcat\webapps\solr\WEB-INF\lib  
  3. smartcn的同步发行包:lucene-analyzers-smartcn-4.3.0.jar  
C:\桌面\solr-4.3.0\contrib\analysis-extras\lucene-libs
F:\eclipse10tomcat\webapps\solr\WEB-INF\lib
smartcn的同步发行包:lucene-analyzers-smartcn-4.3.0.jar




这个弄好之后,就需要在schemal.xml文件中,注册分词器了



Java代码 复制代码  收藏代码
  1. <fieldType name="text_smart" class="solr.TextField" positionIncrementGap="100">  
  2.       <analyzer type="index">  
  3.        <!-- 此处需要配置主要的分词类 -->  
  4.         <tokenizer class="solr.SmartChineseSentenceTokenizerFactory"/>  
  5.         <!--    
  6.         <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" enablePositionIncrements="true" />  
  7.         <filter class="solr.LowerCaseFilterFactory"/>   
  8.         -->  
  9.         <!-- in this example, we will only use synonyms at query time  
  10.         <filter class="solr.SynonymFilterFactory" synonyms="index_synonyms.txt" ignoreCase="true" expand="false"/>  
  11.       -->  
  12.           
  13.         <filter class="solr.SmartChineseWordTokenFilterFactory"/>  
  14.             
  15.       </analyzer>  
  16.       <analyzer type="query">  
  17.       <!-- 此处配置同上 -->  
  18.         <tokenizer class="solr.SmartChineseSentenceTokenizerFactory"/>  
  19.             <!--   
  20.         <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" enablePositionIncrements="true" />  
  21.         <filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/>  
  22.         <filter class="solr.LowerCaseFilterFactory"/>  
  23.         -->  
  24.         <filter class="solr.SmartChineseWordTokenFilterFactory"/>  
  25.            
  26.       </analyzer>  
  27.     </fieldType>  
<fieldType name="text_smart" class="solr.TextField" positionIncrementGap="100"><analyzer type="index"><!-- 此处需要配置主要的分词类 --><tokenizer class="solr.SmartChineseSentenceTokenizerFactory"/><!--  <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" enablePositionIncrements="true" /><filter class="solr.LowerCaseFilterFactory"/> --><!-- in this example, we will only use synonyms at query time<filter class="solr.SynonymFilterFactory" synonyms="index_synonyms.txt" ignoreCase="true" expand="false"/>--><filter class="solr.SmartChineseWordTokenFilterFactory"/></analyzer><analyzer type="query"><!-- 此处配置同上 --><tokenizer class="solr.SmartChineseSentenceTokenizerFactory"/><!-- <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" enablePositionIncrements="true" /><filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/><filter class="solr.LowerCaseFilterFactory"/>--><filter class="solr.SmartChineseWordTokenFilterFactory"/></analyzer></fieldType>





最后在引用一下字段类型就可以了

Java代码 复制代码  收藏代码
  1. <field name="sma" type="text_smart" indexed="true" stored="true" multiValued="true"/>  
<field name="sma" type="text_smart" indexed="true" stored="true" multiValued="true"/>




访问http://localhost:8080/solr/#/collection1点击分词分析即可查看分词效果 

这篇关于solr4.3默认的分词器的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/823431

相关文章

TableView 当前选中的行号。 默认会使哪一行选中 加入导航条后contentInset向下偏移的64

1.得到当前选中的行号     NSLog(@"%ld %s",  [self.tableView indexPathForSelectedRow].row,__func__); 2.默认选中表格的那一行     [self.tableView selectRowAtIndexPath:[NSIndexPath indexPathForRow:0 inSection:0 ]

修改wamp的apache默认端口80以及www目录

转自:http://blog.csdn.net/daydreamingboy/article/details/6247592 修改wamp的apache默认端口80以及www目录 以修改为8088端口和D:/workphp目录为例。 1. 修改为8088端口 左键托盘图标,在“Apache”里可以直接打开httpd.conf,查找到“Listen 80”,可以改成其他端口,我选用808

MacBook安装python3.x后如何使得在命令行里面python默认为3.x版本

MacBook的MacOsX系统自带有python2.7版本,但是现在的统计机器学习的算法库以及深度学习的大部分算法库已经逐渐抛弃python2.x版本,转向python3.x版本了。以tensorflow为例,原本的estimator库已经被v1所收纳。所以,在学习环境上安装python3.x版本从尝鲜变成了刚需。但是呢,网上有很多人都在说mac自带的python2.7版本服务于多个mac服务,

使用matlab的大坑,复数向量转置!!!!!变量区“转置变量“功能(共轭转置)、矩阵转置(默认也是共轭转置)、点转置

近期用verilog去做FFT相关的项目,需要用到matlab进行仿真然后和verilog出来的结果来做对比,然后计算误差。近期使用matlab犯了一个错误,极大的拖慢了项目进展,给我人都整emo了,因为怎么做仿真结果都不对,还好整体的代码都是我来写的,慢慢往下找就找到了问题的来源,全网没有看到多少人把这个愚蠢的错误写出来,我来引入一下。 代码错误的表现:复数向量的虚部被取反,正数变成负数,负数

SpringBoot使用spring.factories加载默认配置

在日常开发过程中,发布一些产品或者框架时,会遇到某些功能需要一些配置才能正常运行,这时我们需要的提供默认配置项,同时用户也能覆盖进行个性化 创建Initializer public class FrameContextInitializer implements ApplicationContextInitializer {@Overridepublic void initialize(Co

Linux下的两种服务:RPM包默认安装的服务和源码包安装的服务

有些软件安装到电脑上后就会有一个或多个服务出现在系统服务管理里面,比如Apache,VMware软件等就会出现在计算机服务里面,可以随系统的启动而启动,当然也可以设置不启动,等要用了的时候再去启动,(可以在运行里面输入services.msc直接打开服务列表),但是有些软件安装到电脑后不会有什么服务生成,比如我们的聊天工具QQ。 Linux下有两种服务,一种是RPM包默认安装的服务,一种

通过bootstrap-fileupload上传文件时js库修改为默认中文的方法

打开fileinput.js文件,修改如下几处原来的en为zh: 1、3065行                lang = options.language || self.data('language') || 'zh', opts; 2、3070行               if (lang !== 'zh' && !isEmpty($.fn.fileinputLocales[lang

SpringSecurity-重写默认配置

重写UserDetailService组件 1.注入Bean的方式 /*** @author: coffee* @date: 2024/6/22 21:22* @description: 重写springsecurity默认组件:注入Bean的方式*/@Configurationpublic class ProjectConfig {/*** 重写userDetailsService组件

ElasticSearch ik分词器的安装使用

目录 一、下载二、解压三、拷贝插件目录四、重启ES 一、下载 下载链接:https://github.com/medcl/elasticsearch-analysis-ik,选择与自己 es 版本对应的 ik 版本下载: 我下载的版本是 7.15.2,https://github.com/medcl/elasticsearch-analysis-ik/releases/ta

More Effective C++ 条款04:非必要不提供默认构造函数

所谓默认构造函数,就是不给任何变量,就可以给调用(无参或参数为默认值)。 基本准则:凡可以“合理地从无到有生成对象”的类,都应该包含默认构造函数,而“必须有某些外来信息才能生成对象”的类,则不必拥有默认构造函数。 但如果类缺乏一个默认构造函数,当你使用这个类时便会有某些限制。 考虑下面这个针对公司仪器而设计的class,在其中,仪器识别码是一定得有的一个构造参数: class Equipm