chinese-search全文检索组件

联合创作 · 2023-09-29 03:27

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()
                     // 
            })
浏览 1
点赞
评论
收藏
分享

手机扫一扫分享

编辑 分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

编辑 分享
举报