NEST 的 Search 方法直接將搜尋結果轉換成強型別來提供給我們使用,可說是非常方便,那我們能不能將搜尋結果轉成另外一個強型別呢?答案是肯定的,不過如果直接將 Search 這個一般化方法指定的類別給換掉,會踩到一些雷,且看接下來的說明。
[料理佳餚] C# NEST 操作 Elasticsearch 搜尋服務(傳回部分欄位、刪除索引)
- 1362
- 0
- Elasticsearch
- 2016-05-23
NEST 的 Search 方法直接將搜尋結果轉換成強型別來提供給我們使用,可說是非常方便,那我們能不能將搜尋結果轉成另外一個強型別呢?答案是肯定的,不過如果直接將 Search 這個一般化方法指定的類別給換掉,會踩到一些雷,且看接下來的說明。
要在 Elasticsearch 下達搜尋指令找出一些東西來,可以透過像 kopf 這類的 Plugin 所提供的 GUI 來直接操作 Elasticsearch 的 RESTFUL Api,可是我們最終還是有需要自己寫程式來下搜尋指令的時候,除了用像 RestSharp 這類的套件,再自行轉換 JSON 結果之外,當然也可以透過 NEST 來輕鬆達成。
Hadoop HDFS 是透過 Block Size 的設定來決定對一個檔案切割的大小,HDFS 預設的 Block Size 是 128mb,意思就是說當一個檔案超過 128mb 時,就會被切成至少 2 個 Block 以上存放。
但是在海量圖檔的情況之下,一個圖檔通常不會超過 128mb,一個檔案還是佔用了一個 Block 個數,實際佔用的磁碟空間是依照檔案的實際大小沒錯,可是檔案的實際大小未達到 Block Size 的設定值時,還是硬生生地佔用了 1 個 Block 個數,當 Block 的數量太多的時候,對於 Hadoop Name Node 的記憶體空間就會有相當大程度的耗損。
同事架設了 Hadoop 用來測試 HDFS,公司有海量的圖檔需要做永久存放的需求,而且都要是 Online 的,在思考解決方案時先考慮到的就是分散式的儲存系統,Hadoop 正夯,所以就拿它來試試看,Hadoop 有很多功能可以使用,但是我們只需要 HDFS 就好了。
Redis Cluster 建立完成後,當然不是建完就擺著可以不用理它,未來有可能會遇到 Scale out 或是資源重新分配的問題,以下介紹如何在我們的 Redis Cluster 上 Add Node、Delete Node、Resharding。
之前有介紹過在 Winodws 上安裝 Redis,從 Redis 3.0 開始提供了 Cluster 的架構,我們可以把一群 Redis Instance 集合起來使用,而且 Client 端只要存取其中一台就可以獲得相同的數據,以下是 Redis Cluster 的設定步驟。
Elasticsearch 架設起來之後雖然已經有 RESTFUL Api 可以使用,GUI 方面也有像 kopf 之類的 Plugin 可以用,但是要寫程式來操作它除了自己接 RESTFUL Api 之外,其實我們還有其它套件可以選擇,像是連 Stack Overflow 都使用的 NEST。
Redis 除了可以用來當 Cache 之外,還可以用來當做 Message Broker,簡單來說就是我訂閱了某個頻道,當這個頻道有訊息被發佈出來之後,我會即時收到帶有訊息的通知,光想到這個我就覺得 Message Broker 可以用來做好多事情,Chating、Notification…etc。
Redis 架設完成後,就可以開始使用它了,關於架設可以參考我這篇文章[料理佳餚] 安裝 Redis 在 Windows 上,而我選用的 Api 是 StackExchange.Redis,原因只在於它的名氣 - Stack Exchange 耶!當然要用啊!
RSA 加密演算法是一種非對稱加密演算法,網路上已經很有非常多的範例了,我只是將我的 Sample 備份在這邊,以便將來可以參考,以下節錄我有參考到的前輩們的文章。