文档章节

solr 分词过程基本介绍

w
 walle-Liao
发布于 2016/05/29 19:35
字数 775
阅读 213
收藏 3

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
 

 

© 著作权归作者所有

w
粉丝 3
博文 15
码字总数 15775
作品 0
深圳
私信 提问
海量数据搜索---搜索引擎的实现

在我们平常的生活工作中,百度、谷歌这些搜索网站已经成为了我们受教解惑的学校,俗话说得好,“有问题找度娘”。那么百度是如何在海量数据中找到自己需要的数据呢?为什么它搜索的速度如此之...

宜信技术学院
05/31
0
0
Solr环境搭建及IK分词的集成及solrJ的调用(二)

看上一篇请移步到这里:http://my.oschina.net/zimingforever/blog/120732 Solr环境搭建及IK分词的集成及solrJ的调用(一) 这里首先介绍如何做分词,首先solr并没有加入中文分词在里面,所以...

王小明123
2013/04/08
0
5
Solr搜索引擎 — SolrCloud安装和集群配置

搞定了一切的一切之后下一步就是正式使用了,但是之前介绍的都是在单台服务器上进行的部署,如果在生产环境出现了单台故障怎么办呢?提供稳定性和性能的最直观的方式就是集群,solr官方提供了...

喵了_个咪
05/27
0
0
m631521383/IKAnalyzer2017_6_6_0

IKAnalyzer201766_0 码云:https://git.oschina.net/iicode/IKAnalyzer2017660 Github:https://github.com/ittalks/IKAnalyzer2017660 IKAnalyzer2017660.jar:https://github.com/ittalks/IK......

m631521383
2017/09/15
0
0
Solr搜索引擎 — 查询命令和两种中文分词使用

已经和mysql建立好了关联,可以查询和更新mysql的数据量,接下来就是进阶的使用方式了 附上: 喵了个咪的博客:http://w-blog.cn Solr官网:http://lucene.apache.org/solr/ PS:8.0.0版本已经...

喵了_个咪
05/24
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Linux的基本命令

目录的操作命令(增删改查) 增: mkdir 目录名称; 查: ls 可以看到该目录下的所有的目录和文件 ls -a,可以看到该目录下的所有文件和目录,包括隐藏的 ls -l,可以看到该目录下的所有目录和...

凹凸凸
今天
2
0
在古老unix中增加新用户

Installing 4.3 BSD Quasijarus on SIMH 目标:要在4.3BSD中新增加用户dmr,指定目录/home/dmr,uid为10 gid=31(guest组,系统已建立) 4.3BSD还没有adduser或useradd 直接修改/etc/passwd...

wangxuwei
今天
2
0
Bootstrap(六)表单样式

基本样式 所有设置了 .form-control 类的 <input>、<textarea> 和 <select> 元素都将被默认设置宽度属性为 width: 100%;。 将 label 元素和前面提到的控件包裹在 .form-group 中可以获得最好...

ZeroBit
昨天
3
0
SSL 证书格式转换

SSL 证书格式转换 不同服务器情况下,需要不同的证书格式。 比如 pem 转 pfx。 pem在window 平台下可以导入,但是无法正常使用。 需要转换成pfx。 推荐在线转换工具,由中国数字证书网站提供...

DrChenXX
昨天
2
0
HAProxy

xx

Canaan_
昨天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部