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進行測試分詞結果

相關文章
相關標籤/搜索