1. Analysis与Analyzer
- Analysis : 文本分析是吧全文本转换成一系列单词(term/token)的过程,也叫分词
- Analysis : 是通过Analyzer来实现的
- 可使用Elasticsearch内置的分析器/或者按需定制化分析器
- 除了在数据写入时转换词条,匹配Query语句时候也需要用相同的分析器对查询语句进行分析
2. Analyzer 的组成
分词器是专门处理分词的组建,Analyzer由三部分组成
Character Filters
:针对原始文本处理,例如去除 htmlTokenizer
:按照规则切分为单词Token Filter
:将切分的单词进行加工,小写,删除 stopwords ,增加同义词
3.Elasticsearch 的内置分词器
3.1 Standard Analyzer
GET _analyze
{
"analyzer": "standard",
"text":"Mastering brown-foxes leap over is"
}
# 输出结果
{
"tokens" : [
{
"token" : "mastering", // 小写处理
"start_offset" : 0,
"end_offset" : 9,
"type" : "<ALPHANUM>",
"position" : 0
},
{
"token" : "brown",
"start_offset" : 10,
"end_offset" : 15,
"type" : "<ALPHANUM>",
"position" : 1
},
{
"token" : "foxes", // 切分字符
"start_offset" : 16,
"end_offset" : 21,
"type" : "<ALPHANUM>",
"position" : 2
},
{
"token" : "leap",
"start_offset" : 22,
"end_offset" : 26,
"type" : "<ALPHANUM>",
"position" : 3
},
{
"token" : "over",
"start_offset" : 27,
"end_offset" : 31,
"type" : "<ALPHANUM>",
&#