chinese-search是一个全文检索组件,基层实现依赖nodejieba中文分词和redis集合存储。比MySQL更轻便更敏捷。
使用## ES5var search = require('chinese-search');## ES6import 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() // })点击空白处退出提示
评论