原创 C語言學習-探索編譯過程

編譯環境:GNU 前言 本渣最近因爲業務需求,需要寫c語言,遇到了一些編譯鏈接問題,整的我心態爆炸,因此抽出時間來好好研究以下C語言的編譯流程。 概覽 如下圖所示,源文件編譯成可執行文件的流程如下: 預編譯 預編譯的文件主要

原创 Lucene隨筆-Lucene的索引文件格式

Lucene 6.5.1 建立一個Lucene示例 數據寫入 public class Writer { private static final String PATH = ""; public static

原创 Lucene隨筆-聊聊IndexWriter

Lucene版本:6.5.1 Package: org.apache.lucene.index; IndexWriter示例 這裏以"hello world"的索引過程爲例,探究以下IndexWriter的原理: doc1:

原创 Lucene隨筆-關於double類型轉換成Long

Lucene: 6.5.1 在DocValue中存儲數值類類型的數據時,往往會將double/float轉換成Long進行存儲。 其中可以參考Class NumbericUtils。我們以double2Long爲示例: pu

原创 ElasicSearch源碼-集羣啓動

版本: ElasticSearch 5.4.4 Lucene版本: 6.5.1 java: open jdk 1.8 框架入口 ES的入口位於以下路徑: org.elasticsearch.bootstrap.Elasti

原创 教你如何在eclipse中調試postgreSQL

這裏我們假設你的eclipse以及基本的java c/c++環境都已經配置完成 下載pg的git mkdir project cd project git clone git clone git://git.postgresql.

原创 lucene隨筆-FST(Finite State Transducer)有限狀態傳感器

lucene版本:6.5.1 有限狀態傳感器,FST(Finite State Transducer)在lucene中扮演着非常重要的一個角色,在4.0後的版本lucene大量使用了這種數據結構,主要是用於在龐大的字典中快速的

原创 postgreSQL隨筆-總結一下PG的查詢流程

客戶端發起查詢請求 客戶端與服務進程進行通信中有兩個關鍵的共享緩衝區: PgRecvBuffer:存儲服務端接收請求,默認8192字節 PqSendBuffer:存儲服務端發送請求,默認8192字節 客戶端與服務進程之間存在兩

原创 ElasticSearch源碼-Discovery模塊

版本: ElasticSearch 5.4.4 Lucene版本: 6.5.1 java: open jdk 1.8 DIscovery模塊的功能 Discover模塊主要是負責發現集羣中的節點,以及選擇主節點。兼容多種D

原创 ElasticSearch源碼-探索ingest的processor源碼

ElasticSearch版本:5.4.5 Ingest 在ES中,Ingest的存在主要是爲了對數據進行預處理,其大概的工作流程如下: 預先定義若干的pipeline,分別對其進行配置,其中每個pipeline都會設定若干

原创 Lucene隨筆-全文檢索基本原理

全文檢索 目前,數據從類型上可以分爲三類: 結構化數據 非結構化數據 半結構化數據 針對非結構化數據。最簡單的全文檢索算法就是順序掃描法,很明顯當文檔量上升到一定數量時,代價極大。另一種即全文檢索法,先對文檔建立索引,然後根據

原创 Lucene隨筆-記錄一下自動flush的觸發條件

Luncene 6.5.1 在lucene中flush存在兩種flush:主動flush與自動flush。那麼在哪些情況下會觸發自動flush呢? MaxBufferedDocs MaxBufferedDocs描述了索引信息被

原创 PostgreSQL隨筆-對象標識符OID

總覽 在PostgreSQL中,對象標識符OID用來在整個數據集簇(initdb初始化的數據存儲區即爲數據集簇)中唯一地標識一個數據庫中的對象,這個對象可以是數據庫、表、索引、視圖、元祖、類型等。PostgreSQL內置了Oid類

原创 Lucene隨筆-BoomFilter布隆過濾器

lucene:6.5.1 簡介 在luncene中布隆過濾器主要保存在.blm文件中,主要是用來判斷特定的內容是否存在,比如在寫入時判斷文檔id是否存在。此外,布隆過濾器只能判斷特定內容肯定不存在,而不能得出肯定存在的結論。

原创 教你如何在eclipse中加載postgreSQL

這裏我們假設你的eclipse以及基本的java c/c++環境都已經配置完成 下載pg的git mkdir project cd project git clone git clone git://git.postgresql.