当前位置: 首页 > 软件库 > 程序开发 > 搜索引擎 >

Reds

Redis加Node.js的全文搜索引擎
授权协议 未知
开发语言 C/C++ JavaScript
所属分类 程序开发、 搜索引擎
软件类型 开源软件
地区 不详
投 递 者 厉成仁
操作系统 Linux
开源组织
适用人群 未知
 软件概览

Reds是由LearnBoost公司的TJ Holowaychuk开发的一个基于RedisNode.js全文搜索引擎,其代码加上注释也只有300行。不得不说又是一个Redis的最佳实践,它的主要原理是通过Redis的sets数据结构将分词后的词语碎片进行存储。这里的分词仅仅是对英文按空格进行切分(中文分词就不要想了~)。

例子:
先添加几个句子到搜索引擎中建立索引

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

  • STRING 字符串类型是Redis最基础的数据结构,其它的几种数据结构都是在字符串类型基础上构建的,字符串的值可以是:字符串、数字、二进制,但其值最大不能超过512M。 常用API整理 API 解释 set key value 设置key的value值 setnx key value 当key不存在时进行set(分布式锁) mset key value [key value …] 批量赋值多个k

  • key pattern 查询相应的key (1)redis允许模糊查询key  有3个通配符  *、?、[] (2)randomkey:返回随机key (3)type key:返回key存储的类型 (4)exists key:判断某个key是否存在 (5)del key:删除key (6)rename key newkey:改名 (7)renamenx key newkey:如果newkey不存在

  • 1 什么是redis? reids是一种基于内存的的,支持key-value等各种数据结构类型的数据存储系统,可用于缓存,事件发布和订阅,高速队列等场景。 2 redis的应用场景 会话缓存,消息队列,发布订阅,商品列表,评论列表 3 redis 数据类型 一共支持五中数据类型 string hash list set zset 1 string 他是redis最基本的数据类型,一个键对应一个值,

  • ​ ​ 活动地址:CSDN21天学习挑战赛 1.环境准备 环境配置可以参考这里 2.数据集下载 REDS数据集网站 训练集需要下载train_sharp、train_sharp_bicubic 验证集需要下载val_sharp、val_sharp_bicubic 如果下载速度慢,可以使用Motrix进行更快的下载 在mmediting-master目录下新建文件夹data/REDS,将上述压缩包放

  • Redis的安装和配置 Redis是一款开源,免费, 高性能的key-value数据库,与Memcached类似(简单地比较Redis与Memcached的区别 1 Redis不仅仅支持简单的k/v类型的数据,同时还提供list,set,zset,hash等数据结构的存储。 2 Redis支持数据的备份,即master-slave模式的数据备份。 3 Redis支持数据的持久化,可以将内存中的数据

  • 支持两种方式 RDB 在指定的时间间隔内 把内存的数据快照到磁盘 默认方式 AOF 所有server执行的命令记录到磁盘,启动时在执行一遍 在尽量减少丢数据的情况下使用,类似MySQL的binlog RDB模式 vim /etc/redis/6379.conf 142 save 900 1 900秒有1次改变就快照一次写入磁盘 143 save 300 10 300秒有10次改变写入磁盘 144

  • import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.stereotype.Component; import org.springframework.uti

  • 1、导出数据,不需要自己写脚本,命令如下: 例:进入redis设置一个key值: zhc ~]#redis-cli 127.0.0.1:6379>set test 11 127.0.0.1:6379>get test 11 127.0.0.1:6379>type test string 127.0.0.1:6379>quit zhc ~]#echo “GET test”|redis-cli -h

  •  The year was 1989, and Tinker Hatfield was back at his tricks storming up an idea for the Air Jordan 4 Bred . How would he top the Air Jordan III? Tinker wanted to get further into performance, rathe

  • 过期策略 定期删除 redis 会将每个设置了过期时间的 key 放入到一个独立的字典中,以后会定期遍历这个字典来删除到期的 key。 定期删除策略 Redis 默认会每秒进行十次过期扫描(100ms一次),过期扫描不会遍历过期字典中所有的 key,而是采用了一种简单的贪心策略。 从过期字典中随机 20 个 key; 删除这 20 个 key 中已经过期的 key; 如果过期的 key 比率超过

  • [转载于http://www.osyunwei.com/archives/7210.html] Linux下php安装Redis扩展 1、安装编译工具 yum install wget  make gcc gcc-c++ zlib-devel openssl openssl-devel pcre-devel kernel keyutils  patch perl 2、安装redis 开始下载 wg

 相关资料
  • 假设我有一个存储加密文本的服务器(端到端:服务器永远看不到纯文本)。 我希望能够对该文本进行全文搜索。 我知道这很棘手,但我的想法是使用传统的全文设计(“列表”和“匹配”表,其中存储单词并与内容表中的id匹配)。当用户提交加密文本时,他们还会发送单词和各自匹配的加盐MD5。使用的盐对于每个用户都是唯一的,并且从他们的密码中恢复。 (简而言之:唯一的区别是“列表”表将包含哈希单词) 现在,这个系统会

  • 回顾 在前面的章节(分页),我们已经加强了数据库查询,因此能够在页面上获取各种查询。 今天,我们会继续探讨数据库的话题,只是领域不同。所有存储内容的应用程序必须提供搜索能力。 许多其它类型的网站可能使用了谷歌、必应等索引所有的内容并且提供查询结果。这个对于大多数静态页面的网站,像论坛,是很好用。我们应用程序 microblog 的基本单元是用户短小的 blog,不是整个页面。我们希望搜索结果是动态

  • 问题内容: 我尝试在elasticsearchJava API上使用正则表达式运行全文搜索。我的过滤器是这样的: 但是它只与一个单词匹配,而没有短语匹配。我的意思是,例如: 如果soruce中有一个字符串,例如:“ ”,而当我的文本字符串如下:“ ”,“ ”,“ ” …时,它就起作用了。 但是,当我的realTimeTextIn字符串为“ ”时,全文搜索将不起作用。我搜索的单词不能超过一个。 我在

  • 我尝试在弹性搜索java api上使用正则表达式运行全文搜索。我的过滤器是这样的: 但是它只与一个单词匹配,而不是与短语匹配。我的意思是,例如: 如果soruce中有一个字符串,如:“

  • 问题内容: 我正在建立Django网站,并且正在寻找搜索引擎。 一些候选人: Lucene / Lucene与指南针/ Solr 狮身人面像 PostgreSQL内置全文本搜索 MySQl内置全文本搜索 选择标准: 结果相关性和排名 搜索和索引速度 易于使用,易于与Django集成 资源需求-网站将托管在VPS上,因此理想情况下,搜索引擎不需要大量的RAM和CPU 可扩展性 其他功能,例如“您的意

  • 我有大量相同类型的实体,每个实体都有大量属性,并且我只有以下两种选择来存储它们: 将每个项存储在索引中并执行多索引搜索 将所有enties存储在单个索引中,并且只搜索1个索引。 一般而言,我想要一个时间复杂度之间的比较搜索“N”实体与“M”特征在上述每一种情况!

  • 我正在使用node.js连接到neo4j数据库。每当我必须为一个节点设置索引时,我都会通过转到neo4j浏览器(localhost:7474)来手动完成。 我构建了自己的nodejs适配器来连接到neo4j,因此目前我只能访问密码查询。要创建索引,我只能访问cypher或浏览器(7474)。那么创建自动全文索引的正确方法是什么,最好是从浏览器本身创建?我如何使用密码访问它(或者我必须访问它?neo

  • 问题内容: 我想在我的网页中进行全文搜索。我需要分页进行搜索。我的数据库每张表有50,000+行。我已经改变了我的表,并使其成为索引。该表始终处于更新状态,仍然有一个自动增加的列。而最新的总是在表格的末尾。 但整个查询时间将花费。我通过Google搜索了许多文章,有的文章写道,只有限制字段字长才能帮助更快地进行搜索。但作为一种类型,它会像这样改变一定的长度(我尝试过标题TEXT(500) CHAR