国产亚洲精品福利在线无卡一,国产精久久一区二区三区,亚洲精品无码国模,精品久久久久久无码专区不卡

當前位置: 首頁 > news >正文

免費制作單頁的網(wǎng)站鏈接搜索引擎

免費制作單頁的網(wǎng)站,鏈接搜索引擎,有免費做海報的網(wǎng)站嗎,重慶政府網(wǎng)站建設(shè)單位1. Elasticsearch 是什么?有哪些應(yīng)用場景? Elasticsearch 整體原理流程? Elasticsearch 是一個為海量數(shù)據(jù)提供近實時搜索和分析能力的分布式搜索引擎,廣泛應(yīng)用于全文檢索、日志分析和大數(shù)據(jù)處理場景中。 Elasticsearch 整體原理…

1. Elasticsearch 是什么?有哪些應(yīng)用場景? Elasticsearch 整體原理流程?

Elasticsearch 是一個為海量數(shù)據(jù)提供近實時搜索和分析能力的分布式搜索引擎,廣泛應(yīng)用于全文檢索、日志分析和大數(shù)據(jù)處理場景中。

Elasticsearch 整體原理流程:

1.建索引(Index)與定義 Mapping:建索引,相當于創(chuàng)建一個邏輯的數(shù)據(jù)容器,用于存放文檔。Mapping,定義索引中字段的數(shù)據(jù)類型、分詞器、是否索引等屬性,類似數(shù)據(jù)庫的 schema。通過 mapping,ES 知道如何解析和存儲每個字段的數(shù)據(jù),如何分詞建立倒排索引。

2. 插入文檔(Document):用戶提交 JSON 格式的文檔,寫入到指定的索引中。ES 根據(jù) mapping 解析字段,對需要分詞的字段進行分詞處理(Tokenizer + Token Filters),生成詞項(tokens)。對每個詞項建立倒排索引,記錄詞項在哪些文檔中出現(xiàn),以及出現(xiàn)頻率、位置等信息。文檔數(shù)據(jù)會被存儲在主分片(Primary Shard)及其副本分片(Replica Shard)中,保證數(shù)據(jù)高可用。寫操作異步刷新到磁盤,提高寫入性能。

3. 查詢流程:查詢請求發(fā)到集群的某個節(jié)點(協(xié)調(diào)節(jié)點)。協(xié)調(diào)節(jié)點根據(jù)索引的分片信息,將查詢請求廣播到所有相關(guān)的主分片和副本分片。對查詢語句進行解析,針對查詢字段使用對應(yīng)的分詞器分詞(如 match 查詢)。在倒排索引中查找詞項,快速定位匹配文檔 ID。計算文檔相關(guān)度得分(基于 TF-IDF 或 BM25 算法等),排序。各分片返回結(jié)果給協(xié)調(diào)節(jié)點。協(xié)調(diào)節(jié)點合并各分片結(jié)果,進行排序分頁,返回最終結(jié)果給客戶端。

2. 倒排索引是什么?為什么適合全文檢索?

在理解倒排索引之前,先看一下正排索引。正排索引是從“文檔到詞”的映射,也就是說:每個文檔記錄了它包含的所有詞。而倒排索引則是相反的:它是從“詞到文檔”的映射,即:每個詞會記錄它出現(xiàn)在哪些文檔中。

當我們搜索一個詞時,只需通過倒排索引快速定位所有包含該詞的文檔,而不需要對所有文檔內(nèi)容進行全文掃描,大大提升了搜索性能。此外,倒排索引還可以記錄每個詞在各個文檔中出現(xiàn)的頻率、位置等信息,用于相關(guān)性打分(如 BM25 算法),從而實現(xiàn)搜索結(jié)果的排序和精準匹配。因此,倒排索引非常適合實現(xiàn)高性能的全文搜索,是搜索引擎(如 Elasticsearch)核心的數(shù)據(jù)結(jié)構(gòu)之一。

3. ES 中的文檔(Document)、索引(Index)、類型(Type)是什么?

在 Elasticsearch 中,最基本的數(shù)據(jù)單位是 Document(文檔),它就像數(shù)據(jù)庫中的一行數(shù)據(jù),JSON 格式存儲。

文檔是存在哪個 Index(索引) 里的,索引可以類比為數(shù)據(jù)庫或表,是文檔的邏輯集合。

早期 ES 中還支持 Type(類型),一個 Index 下可以有多個 Type,相當于一個數(shù)據(jù)庫里有多個表。但因為底層結(jié)構(gòu)沖突,從 6.x 開始被逐步廢棄,7.x 開始每個索引只能有一個 Type,8.x 完全移除。

所以現(xiàn)在實際開發(fā)中,一個索引通常只存一種類型的文檔,不再使用 Type。

比如我們項目中有商品搜索功能,就會創(chuàng)建一個 product_index,每條商品數(shù)據(jù)就是一個文檔,包含商品名、描述、價格等字段,然后通過這個索引來實現(xiàn)搜索和過濾。

4. 什么是 Mapping?和數(shù)據(jù)庫中的 schema 有什么區(qū)別?

在 Elasticsearch 中,索引(Index)通過 Mapping 來定義文檔結(jié)構(gòu),包括字段名、字段類型、是否索引、是否分詞等規(guī)則,相當于定義表的結(jié)構(gòu)。

PUT /products
{"mappings": {"properties": {"name": { "type": "text", "analyzer": "standard" },"price": { "type": "float" },"in_stock": { "type": "boolean" },"created_at": { "type": "date" }}}
}

文檔(Document)是索引中的一條具體數(shù)據(jù)記錄,以 JSON 格式存儲,結(jié)構(gòu)要符合 Mapping 的定義。

POST /products/_doc/1
{"name": "Apple iPhone 14","price": 799.99,"in_stock": true,"created_at": "2024-06-01T10:00:00Z"
}

所以可以理解為:Mapping 決定了索引中能存什么樣的數(shù)據(jù)結(jié)構(gòu),文檔就是實際存進去的數(shù)據(jù)。

在 Elasticsearch 中,Mapping 類似于數(shù)據(jù)庫中的 Schema,它定義了每個文檔字段的數(shù)據(jù)類型、是否分詞、是否索引、分詞器、是否支持聚合等規(guī)則。
不同于數(shù)據(jù)庫,ES 的 Mapping 更加靈活,比如可以支持嵌套結(jié)構(gòu)、數(shù)組、動態(tài)字段,還能定義全文檢索相關(guān)的分詞方式,是搜索性能調(diào)優(yōu)的重要部分。

5. ES 中 matchterm 查詢的區(qū)別?

在 Elasticsearch 中,match 查詢是 全文檢索 類型的查詢,它會對查詢條件先進行分詞,然后再去倒排索引中查找對應(yīng)的文檔,常用于搜索 text 類型字段,比如商品描述、文章內(nèi)容等。

term 查詢則是 精確匹配 查詢,它不會進行分詞,直接使用給定的值去匹配字段,常用于 keyword、數(shù)值、布爾值等字段的過濾或精確判斷。

所以兩者的核心區(qū)別就是:match 會分詞,適合模糊查詢;term 不分詞,適合精確查詢。

6. ES 是怎么進行分詞的?常用的分詞器有哪些?

Elasticsearch 使用 分詞器(Analyzer) 來對文本字段進行處理,分詞器會將一段文本拆分為一個個詞項(term)并進行標準化,例如大小寫轉(zhuǎn)換、去除符號、刪除停用詞等。

分詞器一般包含三個組件:

1.字符過濾器(Char Filters):預處理文本,如去除 HTML 標簽。

2.分詞器(Tokenizer):將文本切分成詞(最核心部分)。

3.詞項過濾器(Token Filters):對分詞結(jié)果進行加工,比如大小寫統(tǒng)一、去除停用詞、同義詞處理等。

常用分詞器:

1.standard:默認分詞器,按空格、標點分詞,同時做大小寫標準化

輸入: I'm learning Elasticsearch.

輸出:i, m, learning, elasticsearch

2.simple:以非字母字符為分隔符,只保留小寫英文

輸入: Hello, World!

輸出: hello, world

3.whitespace:僅以空格分詞,不做其他處理

輸入: Hello, World!

輸出: hello, world

4.keyword:不分詞,把整個輸入當成一個詞項

輸入: 中華人民共和國

輸出: 中華人民共和國

5.ik_max_word:中文分詞器,細粒度,盡可能多的切詞

輸入: 中國互聯(lián)網(wǎng)公司

輸出: 中國, 互聯(lián)網(wǎng), 公司, 中國互聯(lián)網(wǎng), 互聯(lián)網(wǎng)公司

6.ik_smart:中文分詞器,粗粒度,分得較少但準確

輸入: 中國互聯(lián)網(wǎng)公司

輸出: 中國互聯(lián)網(wǎng), 公司

7. 什么是主分片(Primary Shard)和副本分片(Replica Shard)?

在 Elasticsearch 中,索引的數(shù)據(jù)是通過主分片和副本分片進行分布式存儲的。

主分片(Primary Shard)負責實際寫入和保存原始數(shù)據(jù);副本分片(Replica Shard)是主分片的冗余副本,用于容災備份和查詢負載均衡。

通常每個主分片至少配置一個副本,從而保證當某個節(jié)點宕機時數(shù)據(jù)不會丟失,并且查詢時可以由多個分片并行處理提升性能。

主分片負責寫入,副本分片負責高可用和查詢負載分擔;主分片掛了,副本可以自動轉(zhuǎn)為主分片,保障數(shù)據(jù)可靠性。

8. ES 是如何保證高可用的?節(jié)點掛掉會怎樣?

Elasticsearch 通過主/副分片機制、Master 選舉機制以及自動分片遷移能力實現(xiàn)高可用。

當某個節(jié)點宕機時,集群會自動將其主分片由副本接管,并在其他節(jié)點上重新構(gòu)建副本,從而實現(xiàn)無縫切換,保證查詢和寫入的連續(xù)性。同時,Master 節(jié)點也有選舉機制,避免單點故障,整個集群能自動感知變化并自我修復。

節(jié)點掛掉會發(fā)生什么?

Elasticsearch 會立刻識別失聯(lián)節(jié)點(默認 30 秒內(nèi))。

該節(jié)點上的主分片如果有副本,副本會自動被提升為主分片。

副本不足的部分,會被自動重新分配到其他節(jié)點上重建副本。

查詢和寫入請求會自動路由到新的主分片或其副本,不會影響業(yè)務(wù)使用。

如果主節(jié)點宕機,會觸發(fā)主節(jié)點重新選舉機制,集群會暫時處于 yellow 狀態(tài),自動恢復后變回 green。

9. 怎么保證 ES 和數(shù)據(jù)庫之間的數(shù)據(jù)一致性?

保證 ES 和數(shù)據(jù)庫之間數(shù)據(jù)一致,關(guān)鍵在于解決異步同步導致的最終一致性問題:

1. 冪等寫入

ES 寫入接口要設(shè)計冪等,避免重復寫入產(chǎn)生臟數(shù)據(jù)。

常用 document id 由業(yè)務(wù)唯一主鍵生成。

2. 異步消息可靠傳遞

使用消息隊列保障消息不丟失(持久化、確認機制)。

設(shè)計消息重試機制,處理寫 ES 失敗。

3. 事務(wù)保證與補償機制

有條件的場景使用分布式事務(wù)(如基于消息中間件的事務(wù)模式)。

定時全量校驗比對,發(fā)現(xiàn)不一致后自動修復。

4. 順序消費

保證消息順序消費,避免舊數(shù)據(jù)覆蓋新數(shù)據(jù)。

5. 監(jiān)控和告警

監(jiān)控同步延遲和失敗率,及時人工干預。

10. 實際項目中一般數(shù)據(jù)是怎么同步到 ES 的?

1. 應(yīng)用程序主動寫入(同步寫入)

在業(yè)務(wù)系統(tǒng)(如數(shù)據(jù)庫)寫操作后,直接調(diào)用 Elasticsearch API 進行索引寫入。

2. 異步同步(消息隊列/日志異步消費)

業(yè)務(wù)系統(tǒng)將數(shù)據(jù)變更事件發(fā)送到消息隊列(Kafka、RabbitMQ 等)。專門的同步服務(wù)監(jiān)聽消息隊列,異步寫入 Elasticsearch。

3. 定時全量同步 + 增量同步

定時全量同步是指周期性(比如每天凌晨)將數(shù)據(jù)庫中的所有數(shù)據(jù)一次性批量導入 Elasticsearch。目的是初始化數(shù)據(jù)或修復數(shù)據(jù)不一致問題。

增量同步是指只同步自上次同步后數(shù)據(jù)庫中新增加或變更的數(shù)據(jù)??梢酝ㄟ^基于業(yè)務(wù)表的時間戳字段(如 update_time)進行差量查詢;使用數(shù)據(jù)庫變更日志(binlog)捕獲變更事件;監(jiān)聽消息隊列中實時數(shù)據(jù)變更事件來實現(xiàn)增量同步。

http://m.aloenet.com.cn/news/29815.html

相關(guān)文章:

  • 正宗營銷型網(wǎng)站建設(shè)百度網(wǎng)站的域名地址
  • 100元網(wǎng)站建設(shè)寧波網(wǎng)絡(luò)推廣平臺
  • 如何管理個人網(wǎng)站推廣網(wǎng)站有效的方法
  • 給詐騙犯做網(wǎng)站大俠seo外鏈自動群發(fā)工具
  • 做百度企業(yè)網(wǎng)站廣州做seo公司
  • 查企業(yè)網(wǎng)站網(wǎng)絡(luò)推廣途徑
  • php外貿(mào)網(wǎng)站制作新人跑業(yè)務(wù)怎么找客戶
  • 教育公司網(wǎng)站模板百度代理公司查詢
  • 做技術(shù)開發(fā)的網(wǎng)站上海發(fā)布最新情況
  • 虛擬機wordpress建站谷歌chrome
  • 手機微信可以做網(wǎng)站嗎nba最新比賽直播
  • 做衣服的教程網(wǎng)站有哪些網(wǎng)站開發(fā)一般多少錢
  • 企業(yè)文化理念口號seo關(guān)鍵詞排優(yōu)化軟件
  • 短視頻營銷的優(yōu)勢有哪些seo外包資訊
  • 定制網(wǎng)站的制作流程網(wǎng)絡(luò)推廣的方式有哪些?
  • 深圳網(wǎng)站設(shè)計必選成都柚米科技09做什么軟件可以排名次
  • 做有后臺的網(wǎng)站做seo需要哪些知識
  • 綿陽網(wǎng)站建設(shè)信賴輝煌鄭州網(wǎng)絡(luò)運營培訓
  • 哈爾濱網(wǎng)站推廣購物鏈接
  • 惠州外貿(mào)網(wǎng)站建設(shè)推廣武漢搜索引擎排名優(yōu)化
  • 怎樣自創(chuàng)網(wǎng)站網(wǎng)頁設(shè)計與制作用什么軟件
  • 政府門戶網(wǎng)站建設(shè)內(nèi)容百度怎么搜索網(wǎng)址打開網(wǎng)頁
  • 用dw個人網(wǎng)站怎么做優(yōu)化網(wǎng)站的軟件下載
  • 上海自建站招聘杭州企業(yè)seo
  • 創(chuàng)建網(wǎng)站向?qū)Ш湍0錽eo如何提高排名
  • 網(wǎng)站目錄提交谷歌搜索引擎鏡像
  • 西安建設(shè)網(wǎng)站排名自媒體發(fā)布軟件app
  • 網(wǎng)站流量怎么查看精準引流客源的方法可靠嗎
  • 鹽城網(wǎng)站開發(fā)效果新聞發(fā)稿軟文推廣
  • 做期貨應(yīng)該看的網(wǎng)站網(wǎng)奇seo培訓官網(wǎng)