chinese-search全文檢索組件
chinese-search 是一個全文檢索組件,基層實現(xiàn)依賴 nodejieba 中文分詞和 redis 集合存儲。比 MySQL 更輕便更敏捷。
使用
## ES5
var search = require('chinese-search');
## ES6
import search from 'chinese-search'
var data = [{
'name': 'C#權(quán)威指南-full',
'title': 'C#權(quán)威指南是一本C#進階學(xué)習(xí)最好的書籍。',
'author':'ken',
'id': 1
}, {
'name': 'C++權(quán)威指南-full',
'title': 'A',
'author':'ken',
'id': 2
}, {
'name': 'PHP權(quán)威指南-full',
'title': 'B',
'author':'ken',
'id': 3
}]
// 啟動Redis服務(wù),然后填入數(shù)據(jù)。
var s = search.Engine({'host':'127.0.0.1','port':4000})
.cutKeys(['name','title']) // 聲明分詞的KEY
.data(data,(err,r) => {
if(err){
// 錯誤處理
return
}
// 正常在這里可以使用query()
//
})
// 查詢
s.returnKeys(['name','title','id']) // 聲明數(shù)據(jù)返回包含KEY
.query(['A'],(err,r)=>{ // 關(guān)鍵字數(shù)組
if (err) {
console.log(err);
return
};
console.log(r);
// 結(jié)果:[ { name: 'C++權(quán)威指南-full', title: 'A', id: 2 } ]
})
### Express使用
app.use(search.Engine({'host':'127.0.0.1','port':4000}).supportExpres('SEARCHENGINE'))
// 你可以在這些地方找到引擎對象,然后對它操作
// req.app['SEARCHENGINE'],res.app['SEARCHENGINE'],app['SEARCHENGINE']
app['SEARCHENGINE'].cutKeys(['name','title'])
.data(data,(err,r) => {
if(err){
// 錯誤處理
return
}
// 正常在這里可以使用query()
//
})評論
圖片
表情
