利用redis完成自动补全搜索功能(二)

  前面介绍了自动完成的大致思路,现在把搜索次数的功能也结合上去。我采用的是hash表来做的,当然也可以在生成分词的时候,另外一个有序集合来维护排序, 然后2个有序集合取交集即可。这里介绍hash的方式来实现。

  产生分词 dist.php 

<?php
require ‘./redis.php‘;

//分词
$words = [‘花讯‘,‘nba‘,‘nba直播‘,‘nba赛事‘,‘nba季后赛‘,‘nba录像‘,‘花讯品牌‘,‘花讯女装‘,‘花‘,‘n‘];

//利用管道
Cache::getInstance()->pipeline();
foreach ($words as $val) {

    $len = mb_strlen($val,‘utf-8‘);
    for ($i=0;$i<=$len;$i++){

        $key = mb_substr($val,0,$i+1,‘utf-8‘);
        if ($i == $len) {
            $key .= ‘*‘;
            Cache::getInstance()->hSet("search:hits",$key,0);
        }

        Cache::getInstance()->zAdd(‘search‘,0,$key);
    }

}

Cache::getInstance()->exec();

  自动提示 complete.php

 

  

  

  

时间: 2024-10-18 11:44:39

利用redis完成自动补全搜索功能(二)的相关文章

自动补全搜索实现

目前大多数搜索框都已实现自动补全功能,自己也私底下实现了一个简易版本, 在此总结过程中的一些要点: 1,侦听文本框的value值改变,注意在Ie8及其之前版本的onpropertychange和Ie9的oninput事件与 W3C下的oninput事件的异同: 2,ajax请求数据: 3,自动补全框的定位: 4,上下键导航以及鼠标导航 在此附上源码: .auto-ul{ list-style: none; padding: 0; margin: 0; } .auto-ul li{ margin:

linux下让irb实现代码自动补全的功能

我不知道其他系统上irb是否有此功能,但是在ubuntu上ruby2.1.2自带的irb默认是没有代码自动补全功能的,这多少让人觉得有所不便.其实加上也很简单,就是在irb里加载一个模块:require 'irb/completion' ,但是我们不可能每次都手动敲着一行代码,KISS和DRY哪去了? 简单的一劳永逸的方法是在~/.irbrc里添加irb运行时需要执行的代码即可.你要问我怎么知道.irbrc文件路径的,你可以通过IRB.rc_file看到.网上还有更高级的自动补全功能,包括添加语

仿百度自动补全搜索框效果(*附有源码下载)

页面效果及代码,(源码在下面的下载链接) <html> <head> <title></title> <link rel="stylesheet" type="text/css" href="css/semantic.css"> <script type="text/javascript" src="jquery-autocomplete/jquery

使用Redis实现中英文自动补全功能详解

1.Redis自动补全功能介绍: ? Redis可以帮我们实现很多种功能,今天这里着重介绍的是Redis的自动补全功能的实现.我们使用有序集合,并score都为0,这样就按元素值的字典序排序.然后我们可以根据排序号的字符,进行添加前缀和后缀的方式,找到我们想要的区间内容.下面介绍一个简单的Zset的排序内容和思路,以便后续的理解: 名称为redis_concat的Zset集合元素如下: 编号 数值 分值 1 a 0 2 ab 0 3 abcd 0 4 abef 0 5 hjk 0 6 dbfgl

Visual Studio Code使用typings拓展自动补全功能

转自:http://blog.csdn.net/liyijun4114/article/details/51658087 参考来源: 官方介绍: https://code.visualstudio.com/Docs/runtimes/nodejs#_intellisense-and-typings gyzhao写的”Visual Studio Code 使用 Typings 实现智能提示功能”: http://www.cnblogs.com/IPrograming/p/VsCodeTypings

Powershell中命令自动补全功能及使用Windows命令

上一节主要介绍了Powershell中常见的别名,以及怎么通过别名查看真实的Powershell命令,Powershell别名的命名规范以及如何新建自己的别名(Powershell内置别名不可更改)以及Powershell中兼容性别名,详细内容点击这里. 在本节主要包含以下内容. Powershell命令自动补全功能. 在Powershell中使用cmd命令. 总结 Powershell中命令自动补全功能 Powershell命令自动补全的功能也称为Tab扩展,自动补全的功能可以大大提高命令输入

开启mac terminal 命令/路径自动补全功能

用惯了windows命令行工具的按Tab自动补全路径功能后,在mac terminal上敲命令很不习惯.其实mac terminal也有这个功能. 在命令行输入nano .inputrc 进入.inputrc的编辑界面,输入如下语句: set completion-ignore-case on set show-all-if-ambiguous on TAB: menu-complete Control+O保存.重启terminal即生效

pycharm代码自动补全功能

pycharm具有代码自动补全的功能.无意中将其功能关闭,百度了好久才解决掉,所以把这次失误记录下来. 那么我们怎么打开呢? 在软件的左上角找到File->Power Save Mode,将对勾去掉就可以了.

Eclipse 自动补全功能失效解决办法及修改快捷键方法

最近在学习Java,前段时间分盘把电脑能坏了,重装系统后发现我的Eclipse的自动补全的功能失效了,那多麻烦呀,什么都得自己打,于是百度后总结了以下解决方法: 1.点击Window-->Preferences 2.按如下步骤操作 3.点击OK就可以啦 注意:一般情况下自动补全的快捷键是"Alt+/",你也可以在下面图片中查找以下或者修改快捷键