lucene分布式搜尋sensei的使用及完善

2021-08-26 00:22:02 字數 497 閱讀 2068

sensei是linkedin的乙個分布式搜尋系統。安裝步驟參考:

或者

sensei專案一直在公升級中,估計安裝起來越來越複雜了

1. sensei的體系結構:

2. 完善後的體系結構

在sensei中採用了兩級結果合併來處理。

在結構中新增了cache 和nosql 兩塊。

2.1 cache的新增

cache新增失去了zoie的實時性,主要是因為:

1) 在資料分發服務中,各個節點很難保證建立索引的一致性結果造成了排序不一致

2)因為有刪除的資料,結果lucene中計算term的tf和idf時,刪除的資料的分詞結果計算在term的tf和idf。 當刪除該資料時,該資料分詞後的term響應的tf不會刪除,造成了不同索引中score不一樣(如上面的node1中的p2 和 node2中的p2即使索引的資料一樣,但是term的tf不一樣,就會造成結果的score有細微差別)。

2.2 nosql的新增

分布式搜尋elasticsearch配置檔案詳解

elasticsearch的config資料夾裡面有兩個配置檔案 elasticsearch.yml和logging.yml,第乙個是es的基本配置檔案,第二個是日誌配置檔案。elasticsearch.yml檔案中可以配置的如下 cluster.name elasticsearch 配置es的集群...

分布式搜尋方案選型

solr官網 我在學校專案實踐時使用過solandra,它是乙個基於solr和nosql資料庫cassandra的分布式搜尋引擎。cassandra是由facebook開源的nosql數 據庫,facebook的信箱搜尋就是基於它實現的,它是基於列結構的,不同與關聯式資料庫。它的數學模型基於goog...

分布式搜尋演算法

對於搜尋引擎來說,索引存放在成千上萬臺機器上,如何進行分布式搜尋呢?假設搜尋結果是以分頁的方式顯示,以 pagenumber 代表當前頁,從1 開始,以 pagesize 代表頁面大小 預設為 10,以n代表 搜尋伺服器數量 最簡單的 分布式搜尋演算法 為 有一台合併伺服器負責接受使用者的搜尋請求,...