基于Redis與Node.js實現的全文搜索引擎 Reds

fmms 12年前發布 | 29K 次閱讀 Redis Node.js 搜索引擎

Reds是由LearnBoost公司的TJ Holowaychuk開發的一個基于Redis的Node.js全文搜索引擎,其代碼加上注釋也只有300行。不得不說又是一個Redis的最佳實踐,它的主要原理是通過Redis的sets數據結構將分詞后的詞語碎片進行存儲。這里的分詞僅僅是對英文按空格進行切分(中文分詞就不要想了~)。

Node.js是一套用來編寫高性能網絡服務器的JavaScript工具包,一系列的變化由此開始。比較獨特的是,Node.js會假設你是在POSIX環境下運行它Linux 或 Mac OS X。如果你是在Windows下,那就需要安裝MinGW以獲得一個仿POSIX的環境。在Node中,Http是首要的。Node為創建http服務器作了優化,所以你在網上看到的大部分示例和庫都是集中在web上(http框架、模板庫等)。

基于Redis與Node.js實現的全文搜索引擎 Reds

例子:
先添加幾個句子到搜索引擎中建立索引

var strs = [];
strs.push('Tobi wants four dollars');
strs.push('Tobi only wants $4');
strs.push('Loki is really fat');
strs.push('Loki, Jane, and Tobi are ferrets');
strs.push('Manny is a cat');
strs.push('Luna is a cat');
strs.push('Mustachio is a cat');

strs.forEach(function(str, i){ search.index(str, i); });

然后在Tobi dollars這個組合進行搜索

search.query(query = 'Tobi dollars', function(err, ids){
  if (err) throw err;
  console.log('Search results for "%s":', query);
  ids.forEach(function(id){
    console.log('  - %s', strs[id]);
  });
  process.exit();
});

下面是其搜索結果

Search results for "Tobi dollars":
  - Tobi wants four dollars

介紹內容來自:http://blog.nosqlfan.com/html/2676.html

項目主頁:http://www.baiduhome.net/lib/view/home/1325419775656

 本文由用戶 fmms 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!