国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Elasticsearch之文本搜索(十三)

這篇具有很好參考價(jià)值的文章主要介紹了Elasticsearch之文本搜索(十三)。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

????????ES作為一款搜索引擎框架,文本搜索是其核心功能。ES在文本索引的建立和搜索過程中依賴兩大組件,即Lucene和分析器。其中,Lucene負(fù)責(zé)進(jìn)行倒排索引的物理構(gòu)建,分析器負(fù)責(zé)在建立倒排索引前和搜索前對文本進(jìn)行分詞和語法處理。

文本的索引建立過程

????????為了完成對文本的快速搜索,ES使用了一種稱為“倒排索引”的數(shù)據(jù)結(jié)構(gòu)。倒排索引中的所有詞語存儲在詞典中,每個(gè)詞語又指向包含它的文檔信息列表。

假設(shè)需要對下面兩個(gè)旅館的信息進(jìn)行倒排索引的創(chuàng)建:

  • 文檔ID為001,旅館名稱為“北京嘉怡假日旅館”;
  • 文檔ID為002,旅館名稱為“北京欣欣旅館”。

首先,ES將文檔交給分析器進(jìn)行處理,處理的過程包括字符過濾、分詞和分詞過濾,最終的處理結(jié)果是文檔內(nèi)容被表示為一系列關(guān)鍵詞信息的集合。這里的關(guān)鍵詞信息指的是關(guān)鍵詞本身以及它在文檔中出現(xiàn)的位置信息和詞性信息,下圖所示為文檔001的分析結(jié)果示意圖。

Elasticsearch之文本搜索(十三)

?其次,ES根據(jù)分析結(jié)果建立文檔-詞語矩陣,用以表示詞語和文檔的包含關(guān)系,本例中的文檔-詞語矩陣如下表所示:

北京 嘉怡 假日 欣欣 旅館
001 1 1 1 0 1
002 1 0 0 1 1

通過上面的文檔-詞語矩陣可知,ES從文檔001中提取出4個(gè)詞語,從文檔002中提取出3個(gè)詞語。

????????文檔-詞語矩陣建立完成之后,接著需要建立基于詞語的倒排索引。ES會遍歷文檔詞語矩陣中的每一個(gè)詞語,然后將包含該詞語的文檔信息與該詞語建立一種映射關(guān)系。映射關(guān)系中的詞語集合叫作Term Dictionary,即“詞典” .

????????映射中的文檔集合信息不僅包含文檔ID,還包含詞語在文檔中的位置和詞頻信息,包含這些文檔信息的結(jié)構(gòu)叫作Posting List。

????????對于一個(gè)規(guī)模很大的文檔集合來說,可能包含幾十萬甚至上百萬的詞語集合,能否快速定位某個(gè)詞語,直接影響搜索時(shí)的響應(yīng)速度。

????????因此需要一種高效的數(shù)據(jù)結(jié)構(gòu)對映射關(guān)系中的詞語集合進(jìn)行索引,這種結(jié)構(gòu)叫作Term Index。上述3種結(jié)構(gòu)結(jié)合在一起就構(gòu)成了ES的倒排索引結(jié)構(gòu),倒排索引與三者之間的邏輯關(guān)系如下圖所示:

Elasticsearch之文本搜索(十三)

?本例中的倒排索引結(jié)構(gòu)如下圖所示:

Elasticsearch之文本搜索(十三)

?文本的搜索過程

在ES中,一般使用match查詢對文本字段進(jìn)行搜索。match查詢過程一般分為如下幾步:

  1. ES將查詢的字符串傳入對應(yīng)的分析器中,分析器的主要作用是對查詢文本進(jìn)行分詞,并把分詞后的每個(gè)詞語變換為對應(yīng)的底層lucene term查詢。
  2. ES用term查詢在倒排索引中查找每個(gè)term,然后獲取一組包含該term的文檔集合。
  3. ES根據(jù)文本相關(guān)度對每個(gè)文檔進(jìn)行打分計(jì)算,打分完畢后,ES把文檔按照相關(guān)性進(jìn)行倒序排序。
  4. ES根據(jù)得分高低返回匹配的文檔。

比如以下對旅館索引中搜索“金都嘉怡”的查詢?nèi)缦拢?/p>

Elasticsearch之文本搜索(十三)

?ES分析器先將查詢詞切分為“金都”和“嘉怡”,然后分別到倒排索引里查找兩個(gè)詞對應(yīng)的文檔列表并獲得了文檔001和002,然后根據(jù)相關(guān)性算法計(jì)算文檔得分并進(jìn)行排序,最后將文檔集合返回給客戶端。文章來源地址http://www.zghlxwxcb.cn/news/detail-465930.html

到了這里,關(guān)于Elasticsearch之文本搜索(十三)的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 使用 ElasticSearch 作為知識庫,存儲向量及相似性搜索_elasticsearch cosinesimilarity(1)

    使用 ElasticSearch 作為知識庫,存儲向量及相似性搜索_elasticsearch cosinesimilarity(1)

    下面基于上篇文章使用到的 Chinese-medical-dialogue-data 中文醫(yī)療對話數(shù)據(jù)作為知識內(nèi)容進(jìn)行實(shí)驗(yàn)。 本篇實(shí)驗(yàn)使用 ES 版本為: 7.14.0 二、Chinese-medical-dialogue-data 數(shù)據(jù)集 GitHub 地址如下: https://github.com/Toyhom/Chinese-medical-dialogue-data 數(shù)據(jù)分了 6 個(gè)科目類型: 數(shù)據(jù)格式如下所示: 其中

    2024年04月11日
    瀏覽(31)
  • Elasticsearch:使用 Elasticsearch 矢量搜索和 FastAPI 構(gòu)建文本搜索應(yīng)用程序

    Elasticsearch:使用 Elasticsearch 矢量搜索和 FastAPI 構(gòu)建文本搜索應(yīng)用程序

    在我的文章 “Elastic:開發(fā)者上手指南” 的 “ NLP - 自然語言處理及矢量搜索 ”,我對 Elastic Stack 所提供的矢量搜索有大量的描述。其中很多的方法需要使用到 huggingface.co 及 Elastic 的機(jī)器學(xué)習(xí)。這個(gè)對于許多的開發(fā)者來說,意味著付費(fèi)使用。在那些方案里,帶有機(jī)器學(xué)習(xí)的

    2024年02月11日
    瀏覽(28)
  • Elasticsearch:使用 Elasticsearch 向量搜索和 FastAPI 構(gòu)建文本搜索應(yīng)用程序

    Elasticsearch:使用 Elasticsearch 向量搜索和 FastAPI 構(gòu)建文本搜索應(yīng)用程序

    在我的文章 “Elastic:開發(fā)者上手指南” 的 “ NLP - 自然語言處理及矢量搜索 ”,我對 Elastic Stack 所提供的矢量搜索有大量的描述。其中很多的方法需要使用到 huggingface.co 及 Elastic 的機(jī)器學(xué)習(xí)。這個(gè)對于許多的開發(fā)者來說,意味著付費(fèi)使用。在那些方案里,帶有機(jī)器學(xué)習(xí)的

    2024年02月09日
    瀏覽(29)
  • Elasticsearch:使用 ELSER 文本擴(kuò)展進(jìn)行語義搜索

    Elasticsearch:使用 ELSER 文本擴(kuò)展進(jìn)行語義搜索

    在今天的文章里,我來詳細(xì)地介紹如何使用 ELSER??進(jìn)行文本擴(kuò)展驅(qū)動(dòng)的語義搜索。 如果你還沒有安裝好自己的 Elasticsearch 及 Kibana,請參考如下的鏈接來進(jìn)行安裝: 如何在 Linux,MacOS 及 Windows 上進(jìn)行安裝 Elasticsearch Kibana:如何在 Linux,MacOS 及 Windows 上安裝 Elastic 棧中的 Kiba

    2024年02月07日
    瀏覽(25)
  • Elasticsearch:使用 huggingface 模型的 NLP 文本搜索

    Elasticsearch:使用 huggingface 模型的 NLP 文本搜索

    本博文使用由 Elastic 博客 title 組成的簡單數(shù)據(jù)集在 Elasticsearch 中實(shí)現(xiàn) NLP 文本搜索。你將為博客文檔建立索引,并使用攝取管道生成文本嵌入。 通過使用 NLP 模型,你將使用自然語言在博客文檔上查詢文檔。 如果你還沒有安裝好自己的 Elasticsearch 及 Kibana,請參考如下的鏈接

    2024年02月07日
    瀏覽(16)
  • Elasticsearch:如何部署 NLP:文本嵌入和向量搜索

    Elasticsearch:如何部署 NLP:文本嵌入和向量搜索

    作為我們自然語言處理 (NLP) 博客系列的一部分,我們將介紹一個(gè)使用文本嵌入模型生成文本內(nèi)容的向量表示并演示對生成的向量進(jìn)行向量相似性搜索的示例。我們將在 Elasticsearch 上部署一個(gè)公開可用的模型,并在攝取管道中使用它來從文本文檔生成嵌入。然后,我們將展示如

    2024年02月05日
    瀏覽(28)
  • ES es Elasticsearch 十三 Java api 實(shí)現(xiàn)搜索 分頁查詢 復(fù)雜查詢 過濾查詢 ids查詢 等

    目錄 Java api 實(shí)現(xiàn)搜索 Pom.xml 建立鏈接 搜索全部記錄 增加規(guī)則值查某些字段 搜索分頁 全代碼 Ids 搜索 搜索Match搜索 multi_match 搜索 多字段搜索 復(fù)雜查詢 bool查詢 filter? bool 復(fù)雜查詢增加過濾器查詢 復(fù)雜擦好像加排序 日志 思路 參考 api 寫法 寫Java代碼 請求條件構(gòu)建層次

    2024年02月04日
    瀏覽(25)
  • Elasticsearch (ES) 搜索引擎: 文本搜索:分析器/分詞器、同義詞/停用詞、拼音搜索、高亮顯示、拼寫糾錯(cuò)

    原文鏈接:https://xiets.blog.csdn.net/article/details/132349032 版權(quán)聲明:原創(chuàng)文章禁止轉(zhuǎn)載 專欄目錄:Elasticsearch 專欄(總目錄) 文本搜索主要指的就是全文搜索,全文搜索是搜索引擎的核心功能,與精確匹配的結(jié)構(gòu)化數(shù)據(jù)不同,文本(text)數(shù)據(jù)在構(gòu)建索引和搜索時(shí)都需要進(jìn)行額外的處

    2024年02月03日
    瀏覽(44)
  • css-文本垂直居中, 左側(cè)border與文字作為導(dǎo)航標(biāo)題

    css-文本垂直居中, 左側(cè)border與文字作為導(dǎo)航標(biāo)題

    1.文本垂直居中 ? ? ? ? 1.1 Flexbox 布局 ????????1.2Grid 布局: 2.?左側(cè)border與文字作為導(dǎo)航標(biāo)題

    2024年02月01日
    瀏覽(29)
  • Vim是一款功能強(qiáng)大的文本編輯器

    簡介: Vim是一款功能強(qiáng)大的文本編輯器,廣泛用于Linux系統(tǒng)。以下是Vim編輯器的基本使用方法: 打開文件: 使用vim命令加上要編輯的文件名,例如:vim filename。 進(jìn)入編輯模式: 在Vim中,有多種模式,初始狀態(tài)是命令模式,需要按下i鍵或a鍵進(jìn)入編輯模式。 編輯文本: 在編

    2024年04月23日
    瀏覽(24)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包