solr 分词过程基本介绍
2019独角兽企业重金招聘Python工程师标准>>>
managed-schema 配置文件中指定了所有的fields及对应的分词器设置
对应的配置文件如下
Solr 中一个典型的分词器配置如下
先配置一个 field,如下
Field 对应的分词器,需要配置一个analyzer(一个fieldType下可以配置多个analyzer)
分析器(analyzer)是包括两个部分:分词器和过滤器。分词器顾名思意就是将句子分词单个的词,过滤器就是对分词的结果进行筛选,例如中文中将“的”“呀”这些对句子主体意思影响不大的词删除。英语中类似的就是"is","a"等等。通常在索引和分词两端应该采用同样的分词器。solr自带了一些分词器,如果你需要使用自己公司的分词器,那么就需要修改solr模式(Solr schema)。
schema.xml 文件允许两种方式修改文本被分析的方式,通常只有field类型为 solr.TextField 的field的内容允许定制分析器。
一个 analyzer 下指定一个TokenizerFactory ,后面跟一系列的TokenFilterFactories(它们将按照所列的顺序发生作用),Factories被用来创建分词器和分词过滤器,它们用于对分词器和分词过滤器的准备配置
需要说明的一点是,Any Analyzer, TokenizerFactory, or TokenFilterFactory 应该用带包名的全类名进行指定,请确保它们位于Solr的classpath 路径下。对于 org.apache.solr.analysis.* 包下的类,仅仅通过solr.*就可以进行指定。
TokenizerFactories
Solr提供了下列TokenizerFactories(Tokenizers and TokenFilters)
1. solr.KeywordTokenizerFactory
不管什么内容,整句当成一个关键字
例如: "http://example.com/I-am+example?Text=-Hello" ==> "http://example.com/I-am+example?Text=-Hello"
2. solr.LetterTokenizerFactory
根据字母来分词,抛弃非字母的部分
例如:"I can't" ==> "I", "can", "t"
3. solr.WhitespaceTokenizerFactory
根据空格来分词
例如:"I do" ==> "I", "do"
4. solr.LowerCaseTokenizerFactory
根据字母分词,并将所有字母转换成小写,抛弃非字母的部分
例如:"I can't" ==> "i", "can", "t"
5. solr.StandardTokenizerFactory
分词举例: "I.B.M. cat's can't" ==>
ACRONYM: "I.B.M.", APOSTROPHE:"cat's", APOSTROPHE:"can't"
说明:该分词器,会自动地给每个分词添加type,以便接下来的对type敏感的过滤器进行处理,目前仅仅只有StandardFilter对Token的类型是敏感的。
TokenFilterFactories
1. solr.StopFilterFactory
一些无用词过滤(例如: a, an, and, as, at, etc.),详细的在lang/stopwords_en.txt这个文件中有定义
2. solr.LowerCaseFilterFactory
大小写的转换的过滤器,会将所有的大小全部转换成小写单词
3. solr.EnglishPossessiveFilterFactory
估计是做一些单词的语义转换,例如,run可以对应到关联词 running等等
4. solr.KeywordMarkerFilterFactory
估计是做一些敏感词过滤之类的吧,敏感词的配置在protwords.txt这个文件中定义
参考:http://blog.csdn.net/dongnan591172113/article/details/23459637
分词示例:
通过solr api添加field和指定分词器(参考 schema api)
curl -X POST -H 'Content-type:application/json' --data-binary '{
"add-field-type" : {
"name":"myNewTxtField",
"class":"solr.TextField",
"positionIncrementGap":"100",
"analyzer" : {
"charFilters":[{
"class":"solr.PatternReplaceCharFilterFactory",
"replacement":"$1$1",
"pattern":"([a-zA-Z])\\\\1+"
}],
"tokenizer":{
"class":"solr.WhitespaceTokenizerFactory"
},
"filters":[{
"class":"solr.WordDelimiterFilterFactory",
"preserveOriginal":"0"
}]
}
}
}' http://localhost:8983/solr/gettingstarted/schema
转载于:https://my.oschina.net/u/174366/blog/683695
solr 分词过程基本介绍相关推荐
- Lucene.Net+盘古分词器(详细介绍)(转)
Lucene.Net+盘古分词器(详细介绍)(转) Lucene.Net+盘古分词器(详细介绍) 本章阅读概要 1.Lucenne.Net简介 2.介绍盘古分词器 3.Lucene.Net实例分析 4 ...
- Java solr 分词
代码如下: import java.io.IOException; import java.util.*;import org.apache.solr.client.solrj.SolrClient; ...
- Dockerfile 文件结构、docker镜像构建过程详细介绍
[Docker那些事]系列文章 Dockerfile 文件结构.docker镜像构建过程详细介绍 Dockerfile文件中CMD指令与ENTRYPOINT指令的区别 构建Docker镜像指南,含实战 ...
- ansj词典加载及简洁分词过程
ansj词典加载及简要分词过程 粗略看了点ansj源代码,记录备忘. 词典等配置文件加载类 (以调用 NlpAnalysis 分词类为例): 1, MyStaticValue 初始化 NlpA ...
- Linux启动过程详细介绍
Linux启动过程详细介绍 启动第一步--加载BIOS 当你打开计算机电源,计算机会首先加载BIOS信息,BIOS信息是如此的重要,以至于计算机必须在最开始就找到它.这是因为BIOS中包含了CPU的相 ...
- 跳频信号 matlab,time-frequency 关于跳频信号的时频分析过程,介绍的比较详细 matlab 259万源代码下载- www.pudn.com...
文件名称: time-frequency下载 收藏√ [ 5 4 3 2 1 ] 开发工具: matlab 文件大小: 73 KB 上传时间: 2014-10-16 下载次数: 14 提 ...
- 【5G RRC】RSRP、RSRQ以及SINR含义、计算过程详细介绍
博主未授权任何人或组织机构转载博主任何原创文章,感谢各位对原创的支持! 博主链接 本人就职于国际知名终端厂商,负责modem芯片研发. 在5G早期负责终端数据业务层.核心网相关的开发工作,目前牵头6G ...
- ASPICE所有过程域介绍
虽然题目叫所有过程域介绍,但其实不是我来介绍哈哈哈哈.发现了一个NB的链接包含了这些介绍,很适合用来做快速查询,如下: https://www.flecsim.de/images/download/A ...
- solr php 中文分词,solr分词以及搜索
1. solr配置solrconfig.xml solrconfig.xml这个配置文件可以在你下载solr包的安装解压目录的D:\solr-4.10.4\example\solr\collectio ...
最新文章
- 大数据时代的网络视频营销
- 用JavaScript实现函数重载
- 2015蓝桥杯省赛---java---B---2(立方变自身)
- 工作180:前端是业务需求理解
- Serverless 在大规模数据处理中的实践
- 尚学堂java 答案解析 第四章
- 树莓派安装python2.7_树莓派3 + raspbian lite + OpenCV 3 环境搭建
- vc++画线段的函数_专题:精选中考数学压轴题5道,函数综合,内含解题秘籍
- php解析json里的hson_这种json字符串PHP如何解析?
- JAVA 中序遍历的非递归栈实现
- System V 共享内存 和 系列函数
- 通俗编程——白话NIO之Buffer
- GeoTools——新建shapefile文件
- 【发现趣味】要你命三千——老代码中的那些坑
- V5Shop网店系统更新 版本V8.30.0606 RC1
- linux 声音设置,Linux aumix设置音效装置命令详解
- 程序员微信名昵称_2020最火的微信名有哪些 好听的微信名字推荐
- 未群发消息接腾讯服务器吗,腾讯企点如何群发消息 腾讯企点群发消息方法教程...
- win10下安装php7.2的memcache扩展
- Windows Server 2008的介绍及其与Windows Server 2008 R2的区别