天天看點

9.圖靈學院-----阿裡/京東/滴滴/美團整理----搜尋引擎篇

一、什麼是反向索引?有什麼好處?

索引: 從ID到内容。

反向索引: 從内容到ID。好處: 比較适合做關鍵字檢索。 可以控制資料的總量。提高查詢效率。

搜尋引擎為什麼比MySQL查詢快? lucence

文章 -》 term ->排序 term dictionary -> term index -》 Posting List -> [文章ID ,[在文章中出現的偏移量],權重 ]TFIDF

二、ES了解多少?說說你們公司的ES叢集架 構。

ES: 是一個基于Lucene架構的搜尋引擎産品。you know for search。提供了Restful風格的操作接口。 ELK

Lucene:是一個非常高效的全文檢索引擎架構。java jar

ES的一些核心概念:

1、索引 index : 關系型資料庫中的 table

2、文檔 document : row

3、字段 field text\keyword\byte : 列

4、映射Mapping : Schema。

5、查詢方式 DSL : SQL ES的新版本也支援SQL

6、分片 sharding 和 副本 replicas: index都是由sharding組成的。每個sharding都有一個或多個備份。 ES叢集健康狀态:

ES的使用場景。ES可以用在大資料量的搜尋場景下,另外ES也有很強大的計算能力。使用者畫像

三、如何進行中文分詞?用過哪些分詞器?

IK分詞器。

四、ES寫入資料的工作原理是什麼?

1、用戶端發寫資料的請求時,可以發往任意節點。這個節點就會成為coordinating node協調節點。

2、計算的點文檔要寫入的分片:計算時就采用hash取模的方式來計算。

3、協調節點就會進行路由,将請求轉發給對應的primary sharding所在的datanode。

4、datanode節點上的primary sharding處理請求,寫入資料到索引庫,并且将資料同步到對應的replica sharding

5、等primary sharding 和 replica sharding都儲存好文檔了之後,傳回用戶端響應。

五、ES查詢資料的工作原理是什麼?

六、ES部署時,要如何進行優化?