理解solr中的 Analyzer,Tokenizer,Filter
2014-01-08 18:24
155 查看
翻译自 Apache Solr Reference Guide
Analyzer:
analyzer负责检查这个field,然后生成一个token流,一般作为fieldType的一个字节点存在,比如:
<analyzer type="query"> <tokenizer class="solr.WhitespaceTokenizerFactory"/> <filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/> <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="0" catenateNu mbers="0" catenateAll="0" splitOnCaseChange="1"/> <filter class="solr.LowerCaseFilterFactory"/> <filter class="solr.PorterStemFilterFactory"/> </analyzer>
任何复杂的field的分析都可以被分成独立的,一系列的处理步骤,你会发现solr中包含了大部分你需要用到的analyzer。在这个例子中,虽然没有制定特定的analyzer的类,但是他们的按照配置的流程依次走过,从 WhitespaceTokenizerFactory 开始,最后PorterStemFilterFactory 结束。通过配置analyzer的type可以指定是在 index阶段还是 query阶段使用。
Tokenizer:
tokenizer是把一个文本流切成一个个token的,就是传说中的分词,把一句话分成一段一段的,一些空格,停顿符啥的可能被扔了,一个token包含一些这个词的元信息在里面,比如说这个词的位置,当然分词的结果很可能是偏离原来意思的。如果就为了分词的话,一个analyzer中只有一个tokenizer,否则,这个输出会作为以下输入来使用,
Filter:
filter比tokenizer简单,是专门处理一个个token的, 把他们做变换或者是丢弃什么的。filter是接受一个token流,输出一个token流,所以可以是一个链条,处理的顺序跟schema里面的顺序是一样的,所以我们一般把通用的filter放到前面,其他放后面。
调试自己的anaylizer使用http://localhost:8983/solr/#/collection1/analysis 就可以了 ,十分方便。
相关文章推荐
- 理解solr中的 Analyzer,Tokenizer,Filter
- [Solr6.2.1 self learning 3] Analyzer/tokenizer/filter
- Solr 关于Analyzer、Tokenizer、和Filter,以及中文分词器
- solr5.5教程-Analyzer、Tokenizer、Filter
- Solr中的概念:分析器(analyzer)、字符过滤器(character filter)、分词器(Tokenizer)、词元过滤器(Token Filter)、 词干化(Stemming)
- solr学习之六--------Analyzer(分析器)、Tokenizer(分词器)
- solr7.1.0学习笔记(8)---配置文件managed-schema(schema.xml)-analyzer,tokenizer
- IK 分词器 2012 FF 版本取消了 org.wltea.analyzer.solr.IKTokenizerFactory 类【导致只能使用ik分词器来进行分词,无法使用solr自带的其它过滤方式
- solr学习之六--------Analyzer(分析器)、Tokenizer(分词器)
- solr介绍一:Analyzer(分析器)、Tokenizer(分词器)
- lucene 的分析器(analyzer)与分词器(tokenizer)和过滤器(tokenfilter)
- Solr5.2.1学习笔记-2-深入理解schema.xml
- android intentfilter 理解
- Solr入门和实践以及我对Solr的8点理解
- Solr入门和实践以及我对Solr的8点理解
- Solr6.5配置中文分词IKAnalyzer和拼音分词pinyinAnalyzer (二)
- CNN中feature map、卷积核、卷积核个数、filter、channel的概念解释,以及CNN 学习过程中卷积核更新的理解
- (六)洞悉linux下的Netfilter&iptables:如何理解连接跟踪机制?【中】
- java中servlet过滤器Filter学习(看网上资料 算是自己copy理解一遍吧)
- solr4.7中文分词器(ik-analyzer)配置