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

使用AliNLP分詞插件(analysis-aliws)

AliNLP分詞插件(analysis-aliws)是阿里云Elasticsearch(ES)自帶的一個系統默認插件。安裝該插件后會在阿里云ES中集成對應的分析器和分詞器,可用于文檔的分析和檢索。您還可以通過該插件的詞庫配置功能實現詞典的熱更新。

插件介紹

安裝analysis-aliws插件后,阿里云ES默認會集成以下分析器和分詞器。您可以使用這些分析器和分詞器查詢文檔,也可以通過詞庫配置功能自定義更新分詞詞庫。

  • 分析器:aliws(不會截取虛詞、虛詞短語、符號)

  • 分詞器:aliws_tokenizer

說明

前提條件

已安裝analysis-aliws插件(默認未安裝)。安裝方法,請參見安裝或卸載系統默認插件

使用限制

  • ES實例的內存要求8 GB及以上。如果內存不滿足要求,請先升級集群,請參見升配集群

  • 5.x版本和8.x版本實例暫不支持安裝analysis-aliws插件,請以控制臺為準。

使用aliws分析器查詢文檔

  1. 登錄目標阿里云Elasticsearch實例的Kibana控制臺,根據頁面提示進入Kibana主頁。
    登錄Kibana控制臺的具體操作,請參見登錄Kibana控制臺
    說明 本文以阿里云Elasticsearch 6.7.0版本為例,其他版本操作可能略有差別,請以實際界面為準。
  2. 在左側導航欄,單擊Dev Tools
  3. Console中,執行如下命令創建索引。

    • 7.0以下版本

      PUT /index
      {
         "mappings": {
              "fulltext": {
                  "properties": {
                      "content": {
                          "type": "text",
                          "analyzer": "aliws"
                      }
                  }
              }
          }
      }
    • 7.0及以上版本

      PUT /index
      {
        "mappings": {
          "properties": {
              "content": {
                  "type": "text",
                  "analyzer": "aliws"
                }
            }
        }
      }

    以上示例創建了一個名稱為index的索引,類型為fulltext(7.x版本為_doc)。包含了一個content屬性,類型為text,并添加了aliws分析器。

    預期結果如下。

    {
      "acknowledged": true,
      "shards_acknowledged": true,
      "index": "index"
    }
  4. 執行如下命令,添加文檔。

    重要

    如下命令僅適用于Elasticsearch 7.0以下版本,7.0及以上版本需要將fulltext修改為_doc

    POST /index/fulltext/1
    {
      "content": "I like go to school."
    }

    以上示例創建了名稱為1的文檔,并設置了文檔中的content字段的內容為I like go to school.

    預期結果如下。

    {
      "_index": "index",
      "_type": "fulltext",
      "_id": "1",
      "_version": 1,
      "result": "created",
      "_shards": {
        "total": 2,
        "successful": 2,
        "failed": 0
      },
      "_seq_no": 0,
      "_primary_term": 1
    }
  5. 執行如下命令,查詢文檔。

    重要

    如下命令僅適用于Elasticsearch 7.0以下版本,7.0及以上版本需要將fulltext修改為_doc

    GET /index/fulltext/_search
    {
      "query": {
        "match": {
          "content": "school"
        }
      }
    }

    以上示例在所有fulltext類型的文檔中,使用aliws分析器,搜索content字段中包含school的文檔。

    預期結果如下。

    {
      "took": 5,
      "timed_out": false,
      "_shards": {
        "total": 5,
        "successful": 5,
        "skipped": 0,
        "failed": 0
      },
      "hits": {
        "total": 1,
        "max_score": 0.2876821,
        "hits": [
          {
            "_index": "index",
            "_type": "fulltext",
            "_id": "2",
            "_score": 0.2876821,
            "_source": {
              "content": "I like go to school."
            }
          }
        ]
      }
    }
說明

如果您在使用analysis-aliws插件時,得到的結果不符合預期,可通過下文的測試分析器測試分詞器排查調試。

配置詞庫

analysis-aliws插件支持詞庫配置,即上傳自定義的詞典文件aliws_ext_dict.txt。上傳后節點能自動加載詞典文件,實現詞典的熱更新操作(不會觸發集群重啟)。

重要
  • analysis-aliws插件安裝后,系統不會自帶默認詞典文件aliws_ext_dict.txt,需要您手動上傳。

  • 在配置詞庫前,您需要先準備自定義的詞典文件,并重命名為aliws_ext_dict.txt

  • 詞典文件的內容中不能包含隱藏符號,例如以空格結尾的分詞。

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

  5. 系統默認插件列表中,單擊analysis-aliws插件右側操作列下的詞庫配置

  6. 詞庫配置頁面下方,單擊配置

  7. 選擇詞典文件的上傳方式,并按照以下說明上傳詞典文件。

    重要

    analysis-aliws插件僅支持上傳一個詞典文件,且文件名必須為aliws_ext_dict.txt。如果您已經上傳了aliws_ext_dict.txt文件并且需要更新詞典文件,可單擊aliws_ext_dict.txt右側的x,刪除已上傳的aliws_ext_dict.txt詞典文件并重新上傳同名詞典文件。

    更新ALIWS分詞詞庫

    詞典文件要求如下:

    • 文件名:必須是aliws_ext_dict.txt。

    • 文件格式:必須是UTF-8格式。

    • 內容:每行一個詞,前后不能有空白字符;需要使用UNIX或Linux的換行符,即每行結尾是\n。如果是在Windows系統中生成的文件,需要在Linux機器上使用dos2unix工具將詞典文件處理后再上傳。

    您可以通過Text文件添加OSS文件兩種方式上傳詞典文件:

    • Text文件:單擊上傳txt文件,選擇一個本地文件進行上傳。

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

      請確保Bucket與阿里云Elasticsearch實例在同一區域下。且源端(OSS)的文件內容發生變化后,需要重新上傳詞典文件才能生效,不支持自動同步更新。

  8. 單擊保存

    保存后,不會觸發集群重啟,但會觸發集群變更使詞典文件生效,此過程需要10分鐘左右。

    說明

    如果您需要獲取已經上傳過的詞庫文件,可在配置前單擊對應文件的下載按鈕圖標進行下載。

測試分析器

執行如下命令,測試aliws分析器。

GET _analyze
{
  "text": "I like go to school.",
  "analyzer": "aliws"
}

預期結果如下。

{
  "tokens" : [
    {
      "token" : "i",
      "start_offset" : 0,
      "end_offset" : 1,
      "type" : "word",
      "position" : 0
    },
    {
      "token" : "like",
      "start_offset" : 2,
      "end_offset" : 6,
      "type" : "word",
      "position" : 2
    },
    {
      "token" : "go",
      "start_offset" : 7,
      "end_offset" : 9,
      "type" : "word",
      "position" : 4
    },
    {
      "token" : "school",
      "start_offset" : 13,
      "end_offset" : 19,
      "type" : "word",
      "position" : 8
    }
  ]
}

測試分詞器

執行如下命令,測試aliws_tokenizer分詞器。

GET _analyze
{
  "text": "I like go to school.",
  "tokenizer": "aliws_tokenizer"
}

預期結果如下。

{
  "tokens" : [
    {
      "token" : "I",
      "start_offset" : 0,
      "end_offset" : 1,
      "type" : "word",
      "position" : 0
    },
    {
      "token" : " ",
      "start_offset" : 1,
      "end_offset" : 2,
      "type" : "word",
      "position" : 1
    },
    {
      "token" : "like",
      "start_offset" : 2,
      "end_offset" : 6,
      "type" : "word",
      "position" : 2
    },
    {
      "token" : " ",
      "start_offset" : 6,
      "end_offset" : 7,
      "type" : "word",
      "position" : 3
    },
    {
      "token" : "go",
      "start_offset" : 7,
      "end_offset" : 9,
      "type" : "word",
      "position" : 4
    },
    {
      "token" : " ",
      "start_offset" : 9,
      "end_offset" : 10,
      "type" : "word",
      "position" : 5
    },
    {
      "token" : "to",
      "start_offset" : 10,
      "end_offset" : 12,
      "type" : "word",
      "position" : 6
    },
    {
      "token" : " ",
      "start_offset" : 12,
      "end_offset" : 13,
      "type" : "word",
      "position" : 7
    },
    {
      "token" : "school",
      "start_offset" : 13,
      "end_offset" : 19,
      "type" : "word",
      "position" : 8
    },
    {
      "token" : ".",
      "start_offset" : 19,
      "end_offset" : 20,
      "type" : "word",
      "position" : 9
    }
  ]
}

自定義分詞器構造說明

  • analysis-aliws插件分詞完成后,還會經過filter處理,包括:去詞根filter、LowerCaseFilter、PorterStemFilter和StopFilter。如果您的自定義分詞器上也需要使用這些filter,可在自定義分詞器中加入analysis-aliws插件的分詞器aliws_tokenizer,并根據業務需要增加filter配置,示例如下。其中stopwords內可以添加您業務所需配置的停用詞。

    PUT my-index-000001
    {
      "settings": {
        "analysis": {
         "filter": {
          "my_stop": {
           "type": "stop",
           "stopwords": [
            " ",
            ",",
            ".",
            " ",
            "a",
            "的"
           ]
          }
         },
         "analyzer": {
          "my_custom_analyzer": {
           "type": "custom",
           "tokenizer": "aliws_tokenizer",
           "filter": [
            "lowercase",
            "porter_stem",
            "my_stop"
           ]
          }
         }
        }
        }
    }
    說明

    如果您不需要filter,可自行刪除filter配置。

  • aliws_tokenizer支持通過synonym構造自定義分詞器,配置方式與IK分詞器一致,詳細信息請參見使用同義詞

常見問題

  • 使用aliws分詞器進行單詞分詞后,單詞結尾字母缺失。例如:對iPhoneChinese進行分詞得到的結果是Iphonchines,結尾的e沒有了。

    • 原因:aliws在分詞后有去詞根的filter操作,導致結尾的e被去掉了。

    • 解決方案:執行下面命令自定義analysis為:my_custom_analyzer,去掉filter部分。

      PUT my-index1
      {
          "settings": {
              "number_of_shards": 1,
              "analysis": {
                  "analyzer": {
                      "my_custom_analyzer": {
                          "type": "custom",
                          "tokenizer": "aliws_tokenizer"
                      }
                  }
              }
          }
      }
    • 驗證:執行如下命令,測試分詞效果是否符合預期。

      GET my-index1/_analyze
      {
          "analyzer": "my_custom_analyzer",
          "text": ["iphone"]
      }

相關文檔