Elasticsearch学习笔记4: 分词和中文分词

分析器:

分析器做用是将指定字符串处理成多个单个的词条,建立倒排索引。当索引数据时,分析器会将对应的数据处理分词后,建立倒排索引,当搜索时,将待搜索的字符串处理成词条,再去倒排索引中搜索对应的文档。git

分析器包含以下三个:github

字符过滤器

首先,字符串按顺序经过每一个 字符过滤器 。他们的任务是在分词前整理字符串。一个字符过滤器能够用来去掉HTML,或者将 & 转化成 `and`。

分词器

其次,字符串被 分词器 分为单个的词条。一个简单的分词器遇到空格和标点的时候,可能会将文本拆分红词条。

Token 过滤器

最后,词条按顺序经过每一个 token 过滤器 。这个过程可能会改变词条(例如,小写化 Quick ),删除词条(例如, 像 a`, `and`, `the 等无用词),或者增长词条(例如,像 jump 和 leap 这种同义词)

测试分析器:app

GET /_analyze
{
  "analyzer": "standard", # 分析器
  "text": "Text to analyze" # 待分析的词
}

经过设置_mapping中的properties, 能够设置对应全文域字段的分析器elasticsearch

{
    "tweet": {
        "type":     "text",
        "analyzer": "english"
    }
}

如上就是设置tweet字段的分析器为english测试

中文分词

当咱们处理的是中文时,须要设置中文分词器。ui

使用ik分词,须要安装elasticsearch-analysis-ik elasticsearch-analysis-ik的github地址: https://github.com/medcl/elasticsearch-analysis-ikcode

当时es版本为5.6.3, 经过文档得知,能够直接在elasticsearch安装目录下执行:索引

./bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v5.6.3/elasticsearch-analysis-ik-5.6.3.zip

安装成功后,就能够使用中文分词器token

咱们在设置_mapping时,能够指定字段的analyzer为ik_smart 或ik_max_wordip

{
    "tweet": {
        "type":     "text",
        "analyzer": "ik_smart"
    }
}

也能够经过_analyze进行测试分词结果

相关文章
相关标签/搜索