Elasticsearch 分析器的高級用法二(停用詞,拼音搜索)

Elasticsearch 分析器的高級用法二(停用詞,拼音搜索)

  • 停用詞
    • 簡介
    • 停用詞分詞過濾器
      • 自定義停用詞分詞過濾器
      • 內置分析器的停用詞過濾器
      • 注意,有一個細節
  • 拼音搜索
    • 安裝
    • 使用
      • 相關配置

停用詞

簡介

停用詞是指,在被分詞后的詞語中包含的無搜索意義的詞。

例如:這里的風景真美。

分詞后,”這里“,”的“ 相對于文檔搜索意義不大,但這種詞使用頻率又比較高。 為了使搜索更加準確,往往需要在構建索引時,忽略掉這些詞

以在這個網站查看常用的停用詞

  • 英文:https://www.ranks.nl/stopwords
  • 中文:https://www.ranks.nl/stopwords/chinese-stopwords

停用詞分詞過濾器

ES支持兩種方式過濾停用詞

自定義停用詞分詞過濾器

通過自定義分詞過濾器為 停用詞過濾器,來實現停用詞過濾

DELETE /my-index-000001
PUT /my-index-000001
{"settings": {"analysis": {"analyzer": {"stop_analyer": {"tokenizer": "ik_smart","filter": ["stop"]}},"filter": {"stop": {"type": "stop","stopwords": ["我","的","這里","哪里"]}}}},"mappings": {"properties": {"content": {"type": "text","analyzer": "stop_analyer"}}}
}POST /my-index-000001/_analyze
{"field": "content","text": "這里的風景真美"
}

在這里插入圖片描述

內置分析器的停用詞過濾器

一般情況下 我們常用的內置分析器內部都包含 停用詞的設置,這里以標準分析器和IK分析器舉例

  • standard 分析器
    通過指定 standard 分析器 的stopwords 屬性 實現停用詞配置

    DELETE /my-index-000002PUT /my-index-000002
    {"settings": {"analysis": {"analyzer": {"stop_standard": {"type":"standard","stopwords": ["我","的","這","里"]}}}},"mappings": {"properties": {"content": {"type": "text","analyzer": "stop_standard"}}}
    }POST /my-index-000002/_analyze
    {"field": "content","text": "這里的風景真美"
    }
    

    在這里插入圖片描述

  • ik 分析器

    IK分析器默認只有英文停用詞,中文停用詞的使用需要自行添加。

    與添加自定義詞典過程類似
    進入ik 分析器 config 目錄
    編輯 IKAnalyzer.cfg.xml 即可以實現自定義詞典

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
    <properties><comment>IK Analyzer 擴展配置</comment><!--用戶可以在這里配置自己的擴展字典 --><entry key="ext_dict">custom-dict.dic</entry><!--用戶可以在這里配置自己的擴展停止詞字典--><entry key="ext_stopwords">custom-stop.dic</entry><!--用戶可以在這里配置遠程擴展字典 --><!-- <entry key="remote_ext_dict">words_location</entry> --><!--用戶可以在這里配置遠程擴展停止詞字典--><!-- <entry key="remote_ext_stopwords">words_location</entry> -->
    </properties>

    在 custom-stop.dic 文件中 寫入 所需的停用詞,添加完成后,重啟ES即可
    在這里插入圖片描述
    驗證下結果

    POST /_analyze
    {"analyzer": "ik_smart","text": "這里的風景真美"
    }
    

    在這里插入圖片描述

注意,有一個細節

  • IK分析器過濾器 是在 IK分詞器 內部開始過濾器

    POST /_analyze
    {"analyzer": "ik_smart","text": "this is boy"
    }POST /_analyze
    {"tokenizer": "ik_smart","text": "this is boy"
    }
    

    執行上述請求,結果都發生了停用詞過濾,說明IK分析器在分詞器層面就完成了 停用詞過濾。
    在這里插入圖片描述

  • standard 分析器 的stopwords 是作用在 分詞過濾器上的

    POST /_analyze
    {"tokenizer": {"type":"standard","stopwords": ["this","is"]},"text": "this is boy"
    }
    

    執行上述請求,停用詞stopwords 指令沒有生效。說明 stopwords 在分詞器階段無效!
    在這里插入圖片描述

拼音搜索

要實現拼音搜索,需要安裝相應的拼音分析器插件

官網:https://github.com/infinilabs/analysis-pinyin

插件下載地址:https://release.infinilabs.com/analysis-pinyin/stable/

安裝

下載對應 壓縮包(要求與ES版本一致)
本文以 elasticsearch-analysis-pinyin-7.10.2.zip 為例

# 進入es的插件目錄
cd es/plugins
# 創建pinyin目錄
mkdir pinyin
# 在pinyin 目錄下解壓 pinyin分析器
unzip elasticsearch-analysis-pinyin-7.10.2.zip
# 進入es/bin目錄,重啟es
./elasticsearch -d

使用

POST /_analyze
{"analyzer": "pinyin","text":"北京大學"
}

在這里插入圖片描述
如上:北京大學 被 切割為 bei ,jing, da,xue, bjdx

相關配置

  • keep_first_letter: 啟用后,保留每個漢字的第一個字母。

    例如,劉德華變為 ldh。默認值:true。

  • keep_separate_first_letter: 啟用后,保留每個漢字的首字母。

    例如,劉德華變成 l,d,h。默認值:false。注意:這可能會因術語頻率而增加查詢的模糊性。

  • limit_first_letter_length: 設置第一個字母結果的最大長度。默認值:16。

  • keep_full_pinyin: 啟用后,保留每個漢字的完整拼音。默認值:true

    例如,劉德華變成 [liu,de,hua]。

  • keep_joined_full_pinyin: 啟用時,連接每個漢字的完整拼音。默認值:false。

    例如,劉德華變成 [liudehua]。

  • keep_none_chinese: 在結果中保留非中文字母或數字。默認值:true。

  • keep_none_chinese_together: 將非中文字母保留在一起。默認值:true。

    例如,DJ 音樂家變成 DJ,yin,yue,jia。設置為 false 時,DJ 音樂家會變成 D,J,yin,yue,jia。注意:應首先啟用 keep_none_chinese。

  • keep_none_chinese_in_first_letter: 將非中文字母保留在首字母中。

    例如,劉德華 AT2016 變成 ldhat2016。默認值:true。

  • keep_none_chinese_in_joined_full_pinyin:將非中文字母保留在連接的完整拼音中。

    例如,劉德華 2016 將變為 liudehua2016。默認值:false。

  • none_chinese_pinyin_tokenize: 如果非中文字母是拼音字母,則將其分解為獨立的拼音術語。默認值:true。

    例如,liudehuaalibaba13zhuanghan 變成 liu,de,hua,a,li、

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/14294.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/14294.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/14294.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

uwsgi狀態監控

使用 uWSGI 內置的狀態服務器 uWSGI 提供了一個內置的狀態服務器&#xff0c;你可以通過配置 uWSGI 來啟用它&#xff0c;并使用 Web 瀏覽器或者通過 HTTP 請求來查看 uWSGI 的狀態信息。 啟用狀態服務器 在 uWSGI 的配置文件中添加以下配置&#xff1a; [uwsgi] ... sta…

【MySQL精通之路】InnoDB(3)-MVCC多版本管理

InnoDB是一個多版本&#xff08;MVCC&#xff09;的存儲引擎。 它保留有關更改行的舊版本的信息&#xff0c;以支持事務性功能&#xff0c;如并發和回滾。 這些信息存儲在稱為回滾段的數據結構中的Undo表空間中。 參見“Undo表空間”。 InnoDB使用回滾段&#xff08;rollback…

TTS相關

文章目錄 VALL-E-X簡介code vist論文解讀代碼解讀模塊loss代碼 valle名詞解釋 VALL-E-X 簡介 微軟VALL-E-X&#xff1a;夸克在用 可以預訓練模型 端到端 code code&#xff1a;https://github.com/Plachtaa/VALL-E-X/tree/master 報錯1: File "/mnt/TTS/VALL-E-X/tes…

RabbitMQ有哪些優缺點

一&#xff0c;RabbitMQ有哪些優勢 RabbitMQ 作為一款流行的消息隊列服務&#xff0c;具有許多優勢&#xff0c;這些優勢使得它在各種應用場景中都能發揮出色的作用。以下是 RabbitMQ 的一些主要優勢&#xff1a; 高可靠性&#xff1a; RabbitMQ 使用持久化功能&#xff0c;無…

路由導航守衛-全局前置守衛

路由導航守衛中的全局前置守衛&#xff08;Global Before Guards&#xff09;是Vue Router中的一個重要概念。當路由即將改變&#xff08;導航觸發&#xff09;時&#xff0c;這些守衛會按照創建順序調用。它們允許你在路由跳轉之前執行一些操作或判斷&#xff0c;例如檢查用戶…

epoch的數據不能隨便截取,不是特征,要根據時間!!!

長個記性&#xff0c;這半個多月像個笑話&#xff0c;哈哈哈哈

pip如何快速install packet

1、在后面加-i https://mirrors.aliyun.com//pypi//simple或https://pypi.tuna.tsinghua.edu.cn/simple pip install numpy -i https://mirrors.aliyun.com//pypi//simplepip install numpy1.21.0 -i https://pypi.tuna.tsinghua.edu.cn/simple2、需要注意的是&#xff0c;如果…

IDEA指南

IDEA簡介 截止到2021.08.31&#xff0c;是全世界最流行的Java集成開發環境 tips 快捷鍵 ctrl alt v&#xff1a;快速生成方法返回值接收代碼/** enter&#xff1a;生成javaDoc注釋 IDEA常見error Error: java: System Java Compiler was not found in classpath Proj…

【Python設計模式04】策略模式

策略模式&#xff08;Strategy Pattern&#xff09;是一種行為型設計模式&#xff0c;它定義了一系列算法&#xff0c;并將每個算法封裝起來&#xff0c;使它們可以互相替換。策略模式讓算法的變化不會影響使用算法的客戶端&#xff0c;使得算法可以獨立于客戶端的變化而變化。…

Langchain:數據連接封裝、緩存封裝和LCEL學習和探索

&#x1f335; 目錄 &#x1f335; &#x1f60b; 數據連接封裝 &#x1f354; 文檔加載器&#xff1a;Document Loaders 文檔處理器&#xff1a;TextSplitter 向量數據庫與向量檢索 總結 &#x1f349; 緩存封裝&#xff1a;Memory &#x1f3d6;? 對話上下文&#xf…

上位機圖像處理和嵌入式模塊部署(mcu之芯片選擇)

【 聲明&#xff1a;版權所有&#xff0c;歡迎轉載&#xff0c;請勿用于商業用途。 聯系信箱&#xff1a;feixiaoxing 163.com】 目前市面上的mcu很多&#xff0c;有國產的&#xff0c;有進口的&#xff0c;總之種類很多。以stm32為例&#xff0c;這里面又包括了stm32f1、stm32…

Flutter 中的 LicensePage 小部件:全面指南

Flutter 中的 LicensePage 小部件&#xff1a;全面指南 在軟件開發中&#xff0c;遵守開源許可證的要求是至關重要的。Flutter 提供了一個內置的 LicensePage 小部件&#xff0c;它用于展示應用中使用的所有開源庫的許可證信息。本文將為您提供一個全面的指南&#xff0c;幫助…

git commit 規范

在提交代碼時標識本次提交的屬性 feat: 新功能&#xff08;feature&#xff09; fix: 修補bug docs: 文檔&#xff08;documentation&#xff09; style: 格式&#xff08;不影響代碼運行的變動&#xff09; refactor: 重構&#xff08;即不是新增功能&#xff0c;也不是修改b…

熱愛無解 少年萬丈光芒!首席藝人【彭禹錦】登陸第八季完美童模全球賽

2024年7月&#xff0c;一檔由IPA模特委員會創辦于2017年的王牌少兒模特大賽即將拉開全球總決賽的帷幕!作為家喻戶曉的國民賽事——完美童模曾6季榮獲CCTV央視新聞報道&#xff0c;以創意引領、美學引領、和兼具文化底蘊的賽事特色&#xff0c;收獲了全球百萬親子家庭的喜愛。20…

深度學習之基于Pytorch+Flask Web框架預測手寫數字

歡迎大家點贊、收藏、關注、評論啦 &#xff0c;由于篇幅有限&#xff0c;只展示了部分核心代碼。 文章目錄 一項目簡介 二、功能三、系統四. 總結 一項目簡介 一、項目背景與意義 隨著人工智能和深度學習的快速發展&#xff0c;手寫數字識別已成為一個重要的應用領域。該項目…

Python 實現批量文件重命名工具

在現代軟件開發中&#xff0c;圖形用戶界面 (GUI) 工具的創建是一個常見需求。對于那些需要頻繁處理文件的任務&#xff0c;擁有一個簡便的 GUI 工具尤為重要。在這篇博客中&#xff0c;我們將介紹如何使用 wxPython 創建一個簡單的批量文件重命名工具。該工具可以選擇一個文件…

判斷子序列二刷

文章目錄 1、描述2、思路3、notes4、復雜度 1、描述 給定字符串 s 和 t &#xff0c;判斷 s 是否為 t 的子序列。 你可以認為 s 和 t 中僅包含英文小寫字母。字符串 t 可能會很長&#xff08;長度 ~ 500,000&#xff09;&#xff0c;而 s 是個短字符串&#xff08;長度 <1…

Web開發——HTMLCSS

1、概述 Web開發分前端開發和后端開發&#xff0c;前端開發負責展示數據&#xff0c;后端開發負責處理數據。 HTML&CSS是瀏覽器數據展示相關的內容。 1&#xff09;網頁的組成部分 文字、圖片、音頻、視頻、超鏈接、表格等等 2&#xff09;網頁背后的本質 程序員寫的前端…

重大活動網絡安全保障建設及運營指南

在當今高度數字化的社會中&#xff0c;各類重大活動如會議、展覽、賽事及慶典等正面臨著日益復雜和嚴峻的網絡安全威脅。這些威脅不限于網絡入侵或數據泄露&#xff0c;更涉及到對基礎設施、關鍵信息系統和公眾輿論的復雜攻擊&#xff0c;需要國際社會的密切合作和長期關注。因…

一張圖看懂大模型性價比:能力、價格、并發量全面PK

最近&#xff0c;國內云廠商的大模型掀起一場降價風暴。火山引擎、阿里云、百度云等紛紛宣布降價&#xff0c;部分模型價格降幅據稱高達99%&#xff0c;甚至還有些模型直接免費。 五花八門的降價話術&#xff0c;一眼望去遍地黃金。但事實真的如此嗎&#xff1f;今天我們就撥開…