日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

使用IK分詞插件(analysis-ik)

重要

本文中含有需要您注意的重要提示信息,忽略該信息可能對您的業務造成影響,請務必仔細閱讀。

IK分詞插件(analysis-ik)是阿里云Elasticsearch(簡稱ES)的擴展插件,提供了基于詞典的分詞能力,默認不能卸載。所有類型的詞典均默認使用IK分詞插件的原生配置文件,通過更新詞典,您可以修改IK分詞插件的默認詞庫或添加新的詞庫,改善分詞效果,讓分詞結果更加符合業務場景需求。在開源插件的基礎上,IK分詞插件擴展支持了通過對象存儲OSS動態加載詞典文件的功能。

前提條件

集群狀態為正常,可在實例的基本信息頁面查看。具體操作請參見查看實例的基本信息

說明

部分低版本實例的界面和支持的功能可能與本文有區別,請以控制臺為準。

IK分詞插件介紹

IK分詞器的分詞規則

IK分詞插件的分詞器的分詞規則包括ik_smart和ik_max_word兩種:

  • ik_max_word:將文本按照最細粒度進行拆分,適合術語查詢。例如會將計算機漢字輸入方法拆分為計算機,計算,算機,漢字輸入,漢字,輸入,方法

  • ik_smart:將文本按照粗粒度進行拆分,適合短語查詢。例如會將計算機漢字輸入方法拆分為計算機,漢字輸入,方法

支持的詞典類型

IK分詞插件支持以下幾種詞典類型:

詞典類型

詞典說明

詞典文件要求

更新方式

主詞典(main.dic)

IK分詞插件原生內置的主詞典包含27萬多條中文詞語。

如果在創建ES索引時指定了主分詞詞典,向集群中寫入數據時,數據中包含主分詞詞典中的詞,集群就會建立索引,并且該索引能通過關鍵詞被查詢到。

每行一個詞,保存為UTF-8編碼的DIC文件。

停用詞詞典(stopword.dic)

IK分詞插件原生內置的停用詞詞典中包含英文的停用詞,例如a、the、and、at、but等。

如果在創建ES索引時指定了停用詞詞典,向索引中寫入數據時,數據中包含的停用詞詞典中的詞會被過濾掉,不會出現在倒排索引中。

說明

如果您需要使用中文停用詞,可參考官方ES默認的IK分詞配置文件中config目錄下的extra_stopword.dic文件。該文件中包含的停用詞包括:也、了、仍、從、以、使、則、卻、又、及、對、就、并、很、或、把、是、的、著、給、而、被、讓、在、還、比、等、當、與、于、但。

介詞詞典(preposition.dic)

存放介詞

-

IK詞典冷更新

量詞詞典(quantifier.dic)

存放單位相關的詞和量詞。

suffix.dic

存放后綴

-

不支持更新

surname.dic

存放中國的姓氏。

支持的詞典更新方式

阿里云ES的IK分詞插件支持IK詞典冷更新IK詞典熱更新

更新方式

生效方式

加載方式

推薦應用場景

冷更新

對整個集群的詞典進行更新,詞典生效會觸發集群重啟。

系統將上傳的詞典文件傳送到ES節點上,然后重啟ES節點加載詞典文件。

  • 如果您需要替換默認詞典文件或刪除默認詞典文件中的內容,使用IK詞典冷更新。

  • 如果您需要更新介詞詞典或量詞詞典文件,使用IK詞典冷更新。

熱更新

  • 上傳同名詞典文件時,不會觸發集群重啟,集群會在運行過程中直接加載詞庫。

  • 第一次上傳詞典文件、新增或刪除詞典文件、詞典文件名稱發生變化時,會觸發集群重啟,集群需要重新加載詞典的配置。

  • 僅詞典文件內容發生變化時,ES節點會自動加載上傳的詞典文件,實現詞典的更新操作。

  • 如果詞典文件列表或詞典名稱發生變化,集群需要重啟重新加載詞典的配置。

如果您需要擴充主詞典或停用詞詞典文件,或變更擴充詞典文件,建議使用IK詞典熱更新。

更新詞典

對于已經配置了IK分詞的索引,IK詞典冷更新或熱更新完成后,將只對新數據(包含新增數據和更新后的數據)生效。如果您希望對全部數據生效,需要重建索引。

IK詞典冷更新

您可以通過冷更新方式替換詞典文件,替換過程需要重啟ES集群。

警告

冷更新操作會觸發集群重啟,為保證您的業務不受影響,請在業務低峰期進行操作。

  1. 登錄阿里云Elasticsearch控制臺
  2. 在左側導航欄,單擊Elasticsearch實例
  3. 進入目標實例。
    1. 在頂部菜單欄處,選擇資源組和地域。
    2. Elasticsearch實例中單擊目標實例ID。
  4. 在左側導航欄,選擇配置與管理 > 插件配置

  5. 系統默認插件列表頁簽,找到analysis-ik插件,在其右側操作列中單擊冷更新

  6. IK詞庫配置-冷更新控制面板,單擊目標詞典右側的編輯,添加或替換對應的詞典文件后單擊保存

    詞典文件更新方式包括:

    • 上傳本地文件:單擊文件上傳區域上傳詞典文件,或拖拽詞典文件到上傳區域。

    • 上傳OSS文件:輸入Bucket名稱和詞典文件名稱,單擊添加

      • Bucket與阿里云ES實例需要在同一地域。

      • 不支持自動同步更新詞典文件。源端OSS中的詞典文件內容發生變化后,需要通過冷更新使之生效。

    說明
  7. 單擊確定

    ES實例重啟成功后,即詞典文件更新成功。

  8. (可選)登錄ES實例的Kibana控制臺,測試詞典是否生效。

    說明

    登錄Kibana控制臺,請參見登錄Kibana控制臺

    在Kibana控制臺的開發工具(Dev Tools)上執行以下代碼:

    GET _analyze
    {
      "analyzer": "ik_smart",
      "text": ["您詞典中包含的詞"]
    }

    text的值為["計算機漢字輸入方法"],則返回結果如下:

    {
      "tokens" : [
        {
          "token" : "計算機",
          "start_offset" : 0,
          "end_offset" : 3,
          "type" : "CN_WORD",
          "position" : 0
        },
        {
          "token" : "漢字輸入",
          "start_offset" : 3,
          "end_offset" : 7,
          "type" : "CN_WORD",
          "position" : 1
        },
        {
          "token" : "方法",
          "start_offset" : 7,
          "end_offset" : 9,
          "type" : "CN_WORD",
          "position" : 2
        }
      ]
    }

IK詞典熱更新

您可以通過擴展詞典更新的方式擴充主詞典和停用詞詞典。如果詞典文件名和文檔數量不發生變化,則不需要重啟ES集群。

  1. 登錄阿里云Elasticsearch控制臺
  2. 在左側導航欄,單擊Elasticsearch實例
  3. 進入目標實例。
    1. 在頂部菜單欄處,選擇資源組和地域。
    2. Elasticsearch實例中單擊目標實例ID。
  4. 在左側導航欄,選擇配置與管理 > 插件配置

  5. 系統默認插件列表頁簽,找到analysis-ik插件,在其右側的操作列中單擊熱更新

  6. IK詞庫配置-熱更新控制面板,單擊目標詞典右側的編輯,上傳對應的詞典文件后單擊保存

    詞典文件更新方式包括:

    • 上傳本地文件:單擊文件上傳區域上傳詞典文件,或拖拽詞典文件到上傳區域。

    • 上傳OSS文件:輸入Bucket名稱和詞典文件名稱,單擊添加

      • Bucket與阿里云ES實例需要在同一地域。

      • 不支持自動同步更新詞典文件。源端OSS中的詞典文件內容發生變化后,需要通過熱更新使之生效。

    說明
    • 詞典文件后綴必須是.dic,文件名可以包含大小寫字母、數字和下劃線,長度不超過30個字符。

    • 如果您需要修改已上傳的詞典文件內容,可單擊目標詞典文件右側的下載按鈕圖標,下載、修改詞典文件,然后刪除源詞典文件并重新上傳。

    • 支持上傳多個詞典文件,僅詞典文件內容發生變化時集群不需要重啟,文件名稱或文件數量發生變化時需要集群重啟。為保證您的業務不受影響,請在業務低峰期進行操作,等待重啟結束后,詞典會自動生效。

  7. 在頁面底部,單擊確定

    阿里云ES節點上的插件具有自動加載詞典文件的功能,但每個節點獲取詞典文件的可能時間不同,請耐心等待詞典生效。

  8. (可選)登錄ES實例的Kibana控制臺,測試詞典是否生效。

    說明

    登錄Kibana控制臺,請參見登錄Kibana控制臺

    為保證準確性,在Kibana控制臺的開發工具(Dev Tools)上多次執行以下命令進行驗證。

    GET _analyze
    {
      "analyzer": "ik_smart",
      "text": ["您詞典中包含的詞"]
    }

    text的值為["計算機漢字輸入方法"],則返回結果如下。

    {
      "tokens" : [
        {
          "token" : "計算機",
          "start_offset" : 0,
          "end_offset" : 3,
          "type" : "CN_WORD",
          "position" : 0
        },
        {
          "token" : "漢字輸入",
          "start_offset" : 3,
          "end_offset" : 7,
          "type" : "CN_WORD",
          "position" : 1
        },
        {
          "token" : "方法",
          "start_offset" : 7,
          "end_offset" : 9,
          "type" : "CN_WORD",
          "position" : 2
        }
      ]
    }
                                

IK和Pinyin分詞器結合使用示例

  1. 登錄目標阿里云Elasticsearch實例的Kibana控制臺,根據頁面提示進入Kibana主頁。
    登錄Kibana控制臺的具體操作,請參見登錄Kibana控制臺
    說明 本文以阿里云Elasticsearch 7.10.0版本為例,其他版本操作可能略有差別,請以實際界面為準。
  2. 單擊右上角的Dev tools
  3. Console中執行以下命令,創建索引并配置IK和Pinyin分詞器。

    示例如下:

    PUT ik_pinyin
    {
      "settings":{
        "analysis": {
          "filter": {
            "my_pinyin" : {
                "type" : "pinyin",
                "keep_separate_first_letter" : false,
                "keep_full_pinyin" : true,
                "keep_original" : true,
                "limit_first_letter_length" : 16,
                "lowercase" : true,
                "remove_duplicated_term" : true
              }
          },
          "analyzer": {
            "ik_pinyin_analyzer": {
              "type": "custom",
              "tokenizer": "ik_max_word",
              "filter": ["my_pinyin"]
            }
          }
        }
      },
      "mappings":{
        "properties":{
          "text":{
            "type" : "text",
            "analyzer" : "ik_pinyin_analyzer"
          }
        }
      }
    }
    說明

    Pinyin分析插件的具體配置請參見Pinyin Analysis for Elasticsearch

  4. 驗證分詞效果。

    GET ik_pinyin/_analyze
    {
      "text": ["這是個測試"],
      "analyzer": "ik_pinyin_analyzer"
    }

    預期結果如下:

    {
      "tokens" : [
        {
          "token" : "zhe",
          "start_offset" : 0,
          "end_offset" : 2,
          "type" : "CN_WORD",
          "position" : 0
        },
        {
          "token" : "shi",
          "start_offset" : 0,
          "end_offset" : 2,
          "type" : "CN_WORD",
          "position" : 1
        },
        {
          "token" : "這是",
          "start_offset" : 0,
          "end_offset" : 2,
          "type" : "CN_WORD",
          "position" : 1
        },
        {
          "token" : "zs",
          "start_offset" : 0,
          "end_offset" : 2,
          "type" : "CN_WORD",
          "position" : 1
        },
        {
          "token" : "ge",
          "start_offset" : 2,
          "end_offset" : 3,
          "type" : "CN_CHAR",
          "position" : 2
        },
        {
          "token" : "個",
          "start_offset" : 2,
          "end_offset" : 3,
          "type" : "CN_CHAR",
          "position" : 2
        },
        {
          "token" : "g",
          "start_offset" : 2,
          "end_offset" : 3,
          "type" : "CN_CHAR",
          "position" : 2
        },
        {
          "token" : "ce",
          "start_offset" : 3,
          "end_offset" : 5,
          "type" : "CN_WORD",
          "position" : 3
        },
        {
          "token" : "shi",
          "start_offset" : 3,
          "end_offset" : 5,
          "type" : "CN_WORD",
          "position" : 4
        },
        {
          "token" : "測試",
          "start_offset" : 3,
          "end_offset" : 5,
          "type" : "CN_WORD",
          "position" : 4
        },
        {
          "token" : "cs",
          "start_offset" : 3,
          "end_offset" : 5,
          "type" : "CN_WORD",
          "position" : 4
        }
      ]
    }

相關文檔