chinese-search 全文检索组件 项目简介
chinese-search 是一个全文检索组件,基层实现依赖 nodejieba 中文分词和 redis 集合存储。比 MySQL 更轻便更敏捷。使用## ES5
var search = require('chinese-search');
## ES6
import search from 'chinese-search'
var data = [{
'name': 'C#权威指南-full',
'title': 'C#权威指南是一本C#进阶学习最好的书籍。',
'author':'ken',
'id': 1
}, {
'name': 'C++权威指南-full',
'title': 'A',
'author':'ken',
'id': 2
}, {
'name': 'PHP权威指南-full',
'title': 'B',
'author':'ken',
'id': 3
}]
// 启动Redis服务,然后填入数据。
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']) // 声明数据返回包含KEY
.query(['A'],(err,r)=>{ // 关键字数组
if (err) {
console.log(err);
return
};
console.log(r);
// 结果:[ { name: 'C++权威指南-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()
//
})
var search = require('chinese-search');
## ES6
import search from 'chinese-search'
var data = [{
'name': 'C#权威指南-full',
'title': 'C#权威指南是一本C#进阶学习最好的书籍。',
'author':'ken',
'id': 1
}, {
'name': 'C++权威指南-full',
'title': 'A',
'author':'ken',
'id': 2
}, {
'name': 'PHP权威指南-full',
'title': 'B',
'author':'ken',
'id': 3
}]
// 启动Redis服务,然后填入数据。
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']) // 声明数据返回包含KEY
.query(['A'],(err,r)=>{ // 关键字数组
if (err) {
console.log(err);
return
};
console.log(r);
// 结果:[ { name: 'C++权威指南-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()
//
})