manifoldcf同步索引資料到ES

2021-08-13 10:46:12 字數 1338 閱讀 9819

背景和目標: 

關係型資料庫對於文字型資料處理乏力,一般以長varchar,clog,blog欄位儲存,或者把文字內容放在檔案系統中,然後在字段中存的路徑。除了varchar格式的可以用find,replace等函式進行操作(速度很慢,行數多基本沒可操作性),基本只能把文字當做乙個黑盒,不能處理。

把涉及到文字的資料索引到搜尋引擎資料庫中,是最常用的方式,既能夠通過rdbms達到acid和方便管理的特性,又能夠通過搜尋引擎庫實現文字的搜尋分析等深入文字的功能。但是如何同步兩者也是個麻煩事兒,apache的乙個小的專案 manifoldcf就是做這個事情的,這個專案存在已經多年,2023年就有關注到,但至今一直沒有停止發展,版本更新至今比較穩定。

manifoldcf簡介:

就是乙個從源同步資料到目的地的中介軟體,repository就是資料來源,基本上涵蓋了市面上常見的,不常見的涉及文件的資料來源,從jdbc到各種cms系統,企業文件關係系統,一應俱全,輸出端也是,各種搜尋引擎資料庫,es,solr。提供乙個配置介面,可以通過ui設定輸入源和輸出源。

定時任務,定時掃瞄源資料放入佇列(用的資料庫),傳送到輸出目的,標記是否成功。整個過程並不複雜,但是還是有很多細節比較坑。這次資料來源是oracle,目的是es,但是manifoldcf的es支援只到1.3。

1.自帶的derby庫非常慢,非常非常慢,現在支援postgresql和mysql作為佇列儲存庫

3.add index.analysis.analyzer.default.type: keyword in your elasticsearch.yml,網上很多不知道是不靠譜還是對不上這個版本,總之這個是管用的,我裝的是smartcn這個分詞外掛程式,另外也不用註冊,這個外掛程式安裝後自己就註冊為smartcn的analyzer了,配置檔案中只需要加此一句。

4.看預設的analyzer可以用 http://localhost:9200/test/_analyze?text=按資管產品型別統一標準規制,看分詞的結果,如果是預設的是會分成字的

5.搜尋用http://localhost:9200/test/attachment/_search?q=file._content:按資管產品型別統一標準規制

,

"allow_token_parent": ,

"allow_token_share": ,

"deny_token_document": ,

"deny_token_parent": ,

"deny_token_share": ,

"file": ,

"_content_type": ,

"_name": }}

}}

}

同步塊和同步塊索引

微軟在設計基本框架時充分考慮了執行緒同步的問題,其結果就是clr為每乙個堆內物件都提供了支援執行緒同步的功能,這是同步機制的雛形。但是對每個堆內物件都分配同步塊有乙個較大的弊端,就是這樣增大了記憶體的消耗。在一般的系統中,需要同步機制支援的物件可能只佔少數,這樣對於大多數物件來說,乙個同步塊的記憶體...

elasticsearch 同步myql 資料

專案 elastic 搜尋資料庫內容,達到快速匹配的效果 elasticsearch 上面是官方鏈結,我也對它不做過多介紹,有興趣的小夥伴可以直接跳轉。目前我們是通過elastic node的api呼叫它的 直接npm install s elasticsearch 同步mysql的手段 logst...

回文數索引python

給定乙個僅由小寫字母組成的字串。現在請找出乙個位置,刪掉那個字母之後,字串變成回文。請放心總會有乙個合法的解。如果給定的字串已經是乙個回文串,那麼輸出 1。import sys n int sys.stdin.readline strip slist for i in range n if n 0 ...