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

使用ES檢索PDF等文檔的全棧方案之前端demo(end)

這篇具有很好參考價值的文章主要介紹了使用ES檢索PDF等文檔的全棧方案之前端demo(end)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

寫在前面

通過之前的系列文章,整個ES搜索文件的流程與大的問題已經(jīng)統(tǒng)統(tǒng)掃除了,既然是全棧流程,是不能缺少前端查詢頁面的,前端需簡單實現(xiàn)一個用戶輸入查詢關(guān)鍵詞句,發(fā)起搜索,頁面以表格形式展示查詢的結(jié)果,額外可以提供文件的預(yù)覽或下載操作。

系列可閱讀:
1. 實現(xiàn)ES檢索pdf等文件內(nèi)容的插件

2. 基于GitBucket的Hook構(gòu)建ES檢索PDF等文檔全棧方案

3. Java實現(xiàn)讀取轉(zhuǎn)碼寫入ES

4. ES文件搜索的細節(jié)優(yōu)化與實現(xiàn)

5. ES解析word內(nèi)容為空的問題和直接使用Tika解析文檔的方案

實現(xiàn)前端demo

前端框架使用vue快速創(chuàng)建,并基于axois進行后端接口的交互,前提是后端的ES數(shù)據(jù)查詢接口要提前創(chuàng)建好并啟動。

具體的操作步驟,從安裝vue客戶端開始到啟動服務(wù),如下:

npm install -g @vue/cli
ln -s /opt/local/npm/node-v16.19.1-linux-x64/bin/vue /usr/bin/vue

vue -V
# 創(chuàng)建模板項目~HelloWorld
vue create lauf

cd lauf && ll
# 安裝依賴
npm install
npm install axios -g
# 啟動服務(wù)
npm run serve

使用ES檢索PDF等文檔的全棧方案之前端demo(end),ES,elasticsearch,pdf,大數(shù)據(jù),vue,word

項目結(jié)構(gòu)如上!我們主要修改vim HelloWorld.vue,如果需要調(diào)用后端服務(wù)請求數(shù)據(jù),需在依賴中添加axios庫并安裝,否則會編譯失敗。

npm查詢依賴有哪些版本:

npm view axios versions

頁面效果

使用ES檢索PDF等文檔的全棧方案之前端demo(end),ES,elasticsearch,pdf,大數(shù)據(jù),vue,word

頁面可輸入關(guān)鍵詞點擊查詢,下方以表格形式返回搜索到的結(jié)果,包含標(biāo)題等信息,以及預(yù)覽和下載等操作。

ES索引結(jié)構(gòu)與查詢語句

#這個是索引的最終mapping結(jié)構(gòu),設(shè)置了多個分片
PUT /docwrite2
{
  "settings": {
    "number_of_shards": 3,
    "number_of_replicas": 2
  },
  "mappings": {
    "properties": {
      "id": {
        "type": "keyword"
      },
      "title": {
        "type": "text",
        "analyzer": "ik_max_word"
      },
      "fileType": {
        "type": "keyword"
      },
      "active": {
        "type": "boolean"
      },
      "upTime": {
        "type": "date",
        "format": "yyyy-MM-dd HH:mm:ss"
      },
      "content": {
        "type": "text",
        "analyzer": "ik_smart"
      }
    }
  }
}

# 這個是一個輸入關(guān)鍵詞進行查詢的DSL語句
GET /docwrite2/_search
{
  "query": {
    "multi_match": {
      "query": "跳板機",
      "fields": [
        "content",
        "title"
      ],
      "analyzer": "ik_smart"
    }
    
  },
  "_source": {
    "excludes": ["content"]
  }
}

索引結(jié)構(gòu)簡介

這是一個在Elasticsearch中創(chuàng)建索引(名為"docwrite2")的RESTful API請求,使用PUT方法。該索引具有特定的設(shè)置和映射(數(shù)據(jù)結(jié)構(gòu)定義)。

  1. Settings:

    • "number_of_shards": 3:表示索引將被分成3個分片,這是Elasticsearch水平擴展的基礎(chǔ),可以提高搜索和存儲性能。
    • "number_of_replicas": 2:每個主分片會有2個副本分片,用于提供高可用性和容錯性,當(dāng)某個節(jié)點失效時,可以從副本分片繼續(xù)提供服務(wù)。
  2. Mappings:

    • "id":類型為"keyword",這意味著它將被當(dāng)作不可分割的整體進行索引,常用于精確匹配查詢。
    • "title":類型為"text",并指定了分析器(analyzer)為"ik_max_word",這通常是一個中文分詞器,會對文本內(nèi)容進行最大粒度的分詞處理,便于全文檢索。
    • "fileType":同樣為"keyword"類型,用于存儲文件類型等不需要分詞的屬性信息。
    • "active":類型為"boolean",用于存儲布爾值類型的字段。
    • "upTime":類型為"date",并指定了日期格式為"yyyy-MM-dd HH:mm:ss",用于存儲日期時間類型的數(shù)據(jù)。
    • "content":類型為"text",并指定了分析器為"ik_smart",這也是一個中文分詞器,但相比"ik_max_word",它傾向于更智能的最少切分策略,更適合用于較短的文本片段或標(biāo)題等內(nèi)容。

查詢語句解釋

這個Elasticsearch查詢語句是用來在名為“docwrite2”的索引中搜索包含關(guān)鍵詞“跳板機”的文檔,并且在返回結(jié)果中排除了“content”字段的內(nèi)容。以下是詳細的解析:

  1. GET /docwrite2/_search: 這是一個針對“docwrite2”索引執(zhí)行搜索操作的HTTP GET請求。_search端點用于執(zhí)行搜索查詢并返回相關(guān)結(jié)果。

  2. 請求體中的查詢部分:

    • "query": { ... }:這部分定義了搜索的查詢條件。

    • "multi_match": { ... }:這是一種復(fù)合查詢類型,允許在一個或多個指定字段上執(zhí)行全文本搜索。在這個例子中:

      • "query": "跳板機":表示要查找的關(guān)鍵詞是“跳板機”。
      • "fields": ["content", "title"]:指定要在哪些字段上執(zhí)行搜索,這里包括“content”和“title”兩個字段。
      • "analyzer": "ik_smart":指定使用名為“ik_smart”的分析器來分析查詢字符串以及索引中的相應(yīng)字段內(nèi)容。由于之前在映射中為"text"類型的字段指定了中文分詞器,此處選用“ik_smart”分析器來進行智能分詞匹配。
  3. 返回結(jié)果控制部分:

    • "_source": { "excludes": ["content"] }:這一節(jié)控制了返回結(jié)果中原始文檔 _source 字段的包含或排除規(guī)則。在這個案例中,要求在返回的每個匹配文檔中排除“content”字段的內(nèi)容,這意味著即使文檔匹配,也不會顯示“content”字段的值。

整個查詢語句的作用是從索引“docwrite2”的“content”和“title”字段中查找包含詞語“跳板機”的文檔,并在返回結(jié)果時,不顯示每個匹配文檔的“content”字段內(nèi)容。文章來源地址http://www.zghlxwxcb.cn/news/detail-845665.html

到了這里,關(guān)于使用ES檢索PDF等文檔的全棧方案之前端demo(end)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

  • SpringBoot 項目使用 Elasticsearch 對 Word、Pdf 等文檔內(nèi)容的檢索

    SpringBoot 項目使用 Elasticsearch 對 Word、Pdf 等文檔內(nèi)容的檢索

    本文參考自:https://blog.csdn.net/Q54665642ljf/article/details/127701719 本文適用于 elasticsearch 入門小白,還請大佬能指出我的不足(本人其實也是剛學(xué) elasticsearch 沒多久) (1)為什么要有文本抽取插件? 對于 word 、 pdf 等文檔類型的文件而言,它們文件底層的內(nèi)容除了純文本之外,還

    2024年02月16日
    瀏覽(30)
  • vane 一個適用于前端打工人的全??蚣?nodejs+vue3+typescript

    vane 一個適用于前端打工人的全棧框架,nodejs+vue3+typescript

    寫這個的初衷是因為每次用node寫接口的時候總是需要一些寫大一堆的東西, 也有些人把很多接口都放在一個js文件內(nèi), 看起來很是雜亂, 后來用到nuxt寫的時候, 感覺用文件名來命名接口路徑很是方便, 無論是query參數(shù)還是params參數(shù),都可以通過文件名來命名, 也可以通過文件夾層級

    2024年02月11日
    瀏覽(19)
  • 17、全文檢索 -- Elasticsearch -- 使用 反應(yīng)式 RestClient (ReactiveElasticsearchClient)操作 Es 服務(wù)器(增、刪、查 :索引庫和文檔)

    17、全文檢索 -- Elasticsearch -- 使用 反應(yīng)式 RestClient (ReactiveElasticsearchClient)操作 Es 服務(wù)器(增、刪、查 :索引庫和文檔)

    Elasticsearch 所提供 RestHighLevelClient 本身提供了 【同步編程】 和 【異步編程】兩種模型。 Elasticsearch 官方并未提供反應(yīng)式的 RestClient : 因此 Spring Data Elasticsearch 額外補充了一個 ReactiveElasticsearchClient,用于提供反應(yīng)式API支持, ReactiveElasticsearchClient 相當(dāng)于 RestHighLevelClient 的反應(yīng)式

    2024年04月28日
    瀏覽(27)
  • ES+微服務(wù)對文檔進行全文檢索

    ES+微服務(wù)對文檔進行全文檢索

    打開ES服務(wù) 進入es安裝目錄下F:elasticsearch-7.17.1bin,雙擊elasticsearch.bat,如圖 成功后,如圖 2. 打開ES可視化服務(wù) 進入安裝F:elasticsearch-head-master路徑下,執(zhí)行npm run start 3. 打開瀏覽器 參考文獻:https://blog.csdn.net/mjl1125/article/details/121975950

    2024年02月11日
    瀏覽(24)
  • ES全文檢索pdf、word、txt等文本文件內(nèi)容

    ES全文檢索pdf、word、txt等文本文件內(nèi)容

    需求: 用ES對上傳文件內(nèi)容的檢索和高亮顯示。 之前從事于物聯(lián)網(wǎng)行業(yè),從多年前了解ES以后沒有使用過,本篇文章就是為了記錄小白用ES完成工作的過程。 Elasticsearch的介紹、安裝和環(huán)境這里不過多介紹,網(wǎng)上有很多。 思考: 文本搜索,文本需要上傳elasticsearch。支持

    2024年04月11日
    瀏覽(21)
  • Python全棧安全:構(gòu)建安全的全棧應(yīng)用

    Python全棧安全:構(gòu)建安全的全棧應(yīng)用

    ?? 個人網(wǎng)站:【工具大全】【游戲大全】【神級源碼資源網(wǎng)】 ?? 前端學(xué)習(xí)課程:??【28個案例趣學(xué)前端】【400個JS面試題】 ?? 尋找學(xué)習(xí)交流、摸魚劃水的小伙伴,請點擊【摸魚學(xué)習(xí)交流群】 Python作為一種多用途的編程語言,已經(jīng)在全棧應(yīng)用開發(fā)中變得非常流行。全棧應(yīng)用

    2024年02月02日
    瀏覽(43)
  • ElasticSearch 實現(xiàn) 全文檢索 支持(PDF、TXT、Word、HTML等文件)通過 ingest-attachment 插件實現(xiàn) 文檔的檢索

    ElasticSearch 實現(xiàn) 全文檢索 支持(PDF、TXT、Word、HTML等文件)通過 ingest-attachment 插件實現(xiàn) 文檔的檢索

    Attachment 插件是 Elasticsearch 中的一種插件,允許將各種二進制文件(如PDF、Word文檔等)以及它們的內(nèi)容索引到 Elasticsearch 中。插件使用 Apache Tika 庫來解析和提取二進制文件的內(nèi)容。通過使用 Attachment 插件,可以輕松地在 Elasticsearch 中建立全文搜索功能,而無需事先轉(zhuǎn)換二進制

    2024年02月05日
    瀏覽(22)
  • ES解析word內(nèi)容為空的問題和直接使用Tika解析文檔的方案

    ES解析word內(nèi)容為空的問題和直接使用Tika解析文檔的方案

    在上一篇文章最后,我們雖然跑通了ES文件搜索的全部流程,但是仍然出現(xiàn)了1個大的問題:ES7.3實測無法索引docx和doc文檔,content有值但是無法解析到附件成為可讀的可搜索的內(nèi)容,附件內(nèi)容為空(附件中根本沒有content這個字段,并非內(nèi)容為空)。解決的思路是可以直接使用

    2024年04月10日
    瀏覽(22)
  • 云原生開發(fā):從容器到微服務(wù)的全棧指南

    云原生開發(fā):從容器到微服務(wù)的全棧指南

    ??歡迎來到云計算技術(shù)應(yīng)用專欄~云原生開發(fā):從容器到微服務(wù)的全棧指南 ☆* o(≧▽≦)o *☆嗨~我是IT·陳寒?? ?博客主頁:IT·陳寒的博客 ??該系列文章專欄:云計算技術(shù)應(yīng)用 ??其他專欄:Java學(xué)習(xí)路線 Java面試技巧 Java實戰(zhàn)項目 AIGC人工智能 數(shù)據(jù)結(jié)構(gòu)學(xué)習(xí) 云計算技術(shù)應(yīng)用

    2024年02月08日
    瀏覽(25)
  • YAPi在線接口文檔簡單案例(結(jié)合Vue前端Demo)

    YAPi在線接口文檔簡單案例(結(jié)合Vue前端Demo)

    在前后端分離開發(fā)中,我們都是基于文檔進行開發(fā),那前端人員有時候無法馬上拿到后端的數(shù)據(jù),該怎么辦?我們一般采用mock模擬偽造數(shù)據(jù)直接進行測試,本篇文章主要介紹YApi在線接口文檔的簡單使用,并結(jié)合Vue的小demo,讓你快速了解到前后端分離開發(fā)整體流程。 YApi 是高

    2024年02月07日
    瀏覽(22)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包