elasticsearch文档-analysis
来源:互联网 发布:辐射4射击手感优化 编辑:程序博客网 时间:2024/05/16 11:06
原文地址
analysis
基本概念
全文搜索引擎会用某种算法对要建索引的文档进行分析, 从文档中提取出若干Token(词元), 这些算法称为Tokenizer(分词器), 这些Token会被进一步处理, 比如转成小写等, 这些处理算法被称为Token Filter(词元处理器), 被处理后的结果被称为Term(词), 文档中包含了几个这样的Term被称为Frequency(词频)。 引擎会建立Term和原文档的Inverted Index(倒排索引), 这样就能根据Term很快到找到源文档了。 文本被Tokenizer处理前可能要做一些预处理, 比如去掉里面的HTML标记, 这些处理的算法被称为Character Filter(字符过滤器), 这整个的分析算法被称为Analyzer(分析器)。
ES内置了很多Analyzer, 还有很多第三方的Analyzer插件, 比如一些处理中文的Analyzer(中文分词)。
analyzer、 tokenizer、 filter可以在elasticsearch.yml 配置, 下面是配置例子
index :
analysis :
analyzer :
standard :
type : standard
stopwords : [stop1, stop2]
myAnalyzer1 :
type : standard
stopwords : [stop1, stop2, stop3]
max_token_length : 500
# configure a custom analyzer which is
# exactly like the default standard analyzer
myAnalyzer2 :
tokenizer : standard
filter : [standard, lowercase, stop]
tokenizer :
myTokenizer1 :
type : standard
max_token_length : 900
myTokenizer2 :
type : keyword
buffer_size : 512
filter :
myTokenFilter1 :
type : stop
stopwords : [stop1, stop2, stop3, stop4]
myTokenFilter2 :
type : length
min : 0
max : 2000
analyzer
ES内置若干analyzer, 另外还可以用内置的character filter, tokenizer, token filter组装一个analyzer(custom analyzer), 比如
index :
analysis :
analyzer :
myAnalyzer :
tokenizer : standard
filter : [standard, lowercase, stop]
如果你要使用第三方的analyzer插件,需要先在配置文件elasticsearch.yml中注册, 下面是配置IkAnalyzer的例子
index:
analysis:
analyzer:
ik:
alias: [ik_analyzer]
type: org.elasticsearch.index.analysis.IkAnalyzerProvider
当一个analyzer在配置文件中被注册到一个名字(logical name)下后,在mapping定义或者一些API里就可以用这个名字来引用该analyzer了,比如
"message": {
"type": "string",
"indexAnalyzer": "ik",
"searchAnalyzer": "ik"
}
如果没有指定索引和搜索用的analyzer,ES会用默认的analyzer来处理,也就是名字(logical name)为default
,default_index
, default_search
的analyzer。 从名字可以看出来,default
是索引和搜索时用的默认的analyzer,default_index
是索引时用的默认的analyzer,default_search
是查询时用的默认analyzer。
下面是在elasticsearch.yml中配置默认analyzer的例子
index:
analysis:
analyzer:
default_index:
tokenizer: standard
filter: [standard, lowercase, my_synonym, my_snow]
default_search:
tokenizer: standard
filter: [standard, lowercase, stop]
或者用这种格式
index.analysis.analyzer.default.type : "mmseg"
一个analyzer可以起若干别名,比如在下面的例子中,standard analyzer可以用alias1或者alias2来引用
index :
analysis :
analyzer。 :
standard :
alias: [alias1, alias2]
type : standard
stopwords : [test1, test2, test3]
下面是内置的一些analyzer。
tokenizer
ES内置的tokenizer列表。
/path/to/somthing
样式的字符串token filter
ES内置的token filter列表。
character filter
ES内置的character filter列表
icu plugin
icu analysis 插件
- elasticsearch文档-analysis
- elasticsearch文档-analysis
- elasticsearch-analysis-ik
- ElasticSearch-Analysis-IK
- elasticsearch 文档
- elasticsearch同义词配置elasticsearch-analysis-dynamic-synonym
- ElasticSearch安装拼音插件 elasticsearch-analysis-pinyin
- [ElasticSearch]分析之Analysis(分析)
- BusinessOBject analysis + sqlserver analysis service 开发文档
- elk 普元 elasticsearch-analysis-ik
- Elasticsearch映射(mapping)与分析(analysis)
- 安装Elasticsearch analysis ik中文分词插件
- elasticsearch-2.1.1 安装中文分词器 elasticsearch-analysis-ik
- elasticsearch文档-modules
- elasticsearch索引文档-attachment
- [Elasticsearch] 分布式文档存储
- elasticsearch安装部署文档
- elasticsearch更新文档数据
- (Struts)ActionForm类及表单数据验证
- SSH通信协议浅析
- Android实现程序前后台切换效果
- sublime 使用(备忘)
- MySQL存储引擎简介
- elasticsearch文档-analysis
- 【iOS XMPP】使用XMPPFramewok(四):收发消息
- 10gocm->session3->数据备份与恢复
- Dalsa - 图像处理软件 Dalsa视觉检测 请加群304023601
- vim简明教程
- 【iOS XMPP】使用XMPPFramewok(五):好友列表
- 前端开发常用js框架收集
- android中SQLite数据库中用insert同时插入多条记录的方法和效率比较
- 一个功能齐全的IOS音乐播放器应用源码