Wordpress建站

RediSearch高性能全文搜索引擎-整合WordPress打造高质量搜索

Redisearch在Redis上面实现了一个搜索引擎,但与其他Redis搜索库不同,它不使用内部数据结构,如排序集。数据存储在内存中,使用内存-有效的自定义数据结构,强大的自动提示引擎,支持多种使用UTF-8编码的语言,支持已经在Redis中存在的HASH对象作为文件的索引。

RediSearch也可以整合到Wordpress,替换Wordpress默认的搜索引擎,而且支持搜索词提示、自动纠错、同义词等,它可以让我们的搜索更快更强大。RediSearch可以安装在本机VPS上,与Wordpress同属一个服务器,索引速度快,且当文章更新后会自动更新索引。

这篇文章就来分享一下如何将RediSearch整合到Wordpress,替换Wordpress默认的搜索功能。更多的关于Wordpress优化的文章,这里有(参考:我正在用的WordPress插件):

  1. 网站启用WebP格式图片-PHP和Nginx转化WebP格式和自适应浏览器
  2. WordPress文章目录侧边固定滚动-Easy Table 和LuckyWP Table插件
  3. WordPress子主题创建与使用方法-防止修改过的CSS,JS和代码失效

PS:2019年12月2日更新,WordPress插件用的多的话容易出现各种冲突与问题,检测的方式有: WordPress错误诊断模式-专治WP页面空白,服务器500错误,插件冲突

PS:2020年3月19日更新,WordPress是一个非常好的建站工具,不仅可以用来写博客,还可以当成CMS内容建站,采集插件也是非常好用: WordPress胖鼠采集插件教程-WP自动采集和发布微信公众号,简书,知乎等任意网站

一、RediSearch安装配置

网站:

  1. 官网:https://oss.redislabs.com/redisearch/
  2. 插件:https://wordpress.org/plugins/redisearch/

先确保你的服务器上已经启用了Redis服务,一般来说如果你用的是OneinstackLNMP宝塔BT面板,可以一键安装Redis服务。然后,使用以下命令安装RediSearch:

apt update
apt install cmake build-essential git -y


cd /tmp
git clone https://github.com/RedisLabsModules/RediSearch.git
cd RediSearch/cmake
cmake .. -DCMAKE_BUILD_TYPE=RelWithDebInfo

#看到如下输出表示成功
root@150-95-177-167:~# cd /tmp
root@150-95-177-167:/tmp# git clone https://github.com/RedisLabsModules/RediSearch.git
Cloning into 'RediSearch'...
remote: Enumerating objects: 178, done.
remote: Counting objects: 100% (178/178), done.
remote: Compressing objects: 100% (122/122), done.
remote: Total 23273 (delta 91), reused 100 (delta 54), pack-reused 23095
Receiving objects: 100% (23273/23273), 16.46 MiB | 7.09 MiB/s, done.
Resolving deltas: 100% (16751/16751), done.
root@150-95-177-167:/tmp# cd RediSearch/cmake
root@150-95-177-167:/tmp/RediSearch/cmake# cmake .. -DCMAKE_BUILD_TYPE=RelWithDebInfo
-- The C compiler identification is GNU 6.3.0
-- The CXX compiler identification is GNU 6.3.0
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Performing Test HAVE_W_INCOMPATIBLE_POINTER_TYPES
-- Performing Test HAVE_W_INCOMPATIBLE_POINTER_TYPES - Success
-- Performing Test HAVE_W_DISCARDS_QUALIFIERS
-- Performing Test HAVE_W_DISCARDS_QUALIFIERS - Failed
v1.6.0-251-g5baf48bd
CMake Warning (dev) at CMakeLists.txt:127 (GET_TARGET_PROPERTY):
  Policy CMP0045 is not set: Error on non-existent target in
  get_target_property.  Run "cmake --help-policy CMP0045" for policy details.
  Use the cmake_policy command to set the policy and suppress this warning.

  get_target_property() called with non-existent target "example_extension".
This warning is for project developers.  Use -Wno-dev to suppress it.

-- Configuring done
-- Generating done
-- Build files have been written to: /tmp/RediSearch/cmake

#开始编译
make

编译完成后,执行以下命令将 redisearch.so 放入目录下:

mkdir -p /etc/redis/modules
cp /tmp/RediSearch/cmake/redisearch.so /etc/redis/modules/redisearch.so

然后编辑 redis.conf 文件,添加以下代码,最后重启Redis。

loadmodule /etc/redis/modules/redisearch.so
#重启
sudo service redis-server restart

redis.conf 文件常用的路径是/etc/redis/redis.conf,也有在其它地方的,例如Oneinstack的路径如下:

二、RediSearch插件使用

2.1 配置服务器

回到插件页面,你可以看到

2.3 实时搜索

RediSearch支持添加实时搜索,即当用户输入关键词时会有提示。

2.4 同义词设置

RediSearch的同义词设置允许你添加相关的词语用于提高搜索质量。

三、RediSearch搜索效果

3.1 索引是否成功

通过以下命令你可以检测RediSearch索引是否成功。

root@150-95-177-167: redis-cli #进入Redis server
127.0.0.1:6379> MODULE list #检查 modules 是否成功加载
1) 1) "name"
   2) "ft"
   3) "ver"
   4) (integer) 999999
127.0.0.1:6379> INFO keyspace #查看数据库
# Keyspace
db0:keys=135,expires=0,avg_ttl=0
127.0.0.1:6379> SELECT 0 #选择0数据库
OK
127.0.0.1:6379> KEYS * #列出所有的Key
  1) "ft:meimei/\xe4\xb8\x80\xe7\x9b\xb4\xe4\xbb\xa5\xe6\x9d\xa5\xef\xbc\x8c\xe6\x88\x91\xe6\x9c\x89\xe4\xb8\x80\xe4\xb8\xaa\xe5\x86\x99\xe2\x80\x9c\xe9\x95\xbf\xe6\x96\x87\xe7\xab\xa0\xe2\x80\x9d\xe7\x9a\x84\xe4\xb9\xa0\xe6\x83\xaf\xe3\x80\x82\xe6\x9c\x80\xe5\xbc\x80\xe5\xa7\x8b\xe7\x9a\x84\xe6\x97\xb6\xe5\x80\x99\xe5\x83\x8f\xe5\x86\x99\xe6\xb6\x88\xe6\x81\xaf\xe4\xb8\x80\xe6\xa0\xb7\xe6\x9d\xa5\xe5\x86\x99\xe5\x8d\x9a\xe5\xae\xa2\xef\xbc\x8c\xe6\x96\x87\xe7\xab\xa0\xe7\xae\x80\xe7\x9f\xad\xef\xbc\x8c\xe4\xbd\x86\xe4\xbe\x9d\xe7\x84\xb6\xe8\xa7\x89\xe5\xbe\x97\xe5\xbe\x88\xe9\x9a\xbe\xe5\x86\x99\xef\xbc\x8c\xe6\x89\xbe\xe4\xb8\x8d\xe5\x88\xb0\xe5\x90\x88\xe9\x80\x82\xe7\x9a\x84\xe8\xaf\xad\xe5\x8f\xa5\xe6\x9d\xa5\xe8\xa1\xa8\xe8\xbe\xbe\xe3\x80\x82\xe5\x90\x8e\xe6\x9d\xa5\xe6\x83\xb3\xe5\x87\xba\xe4\xb8\x80\xe4\xb8\xaa\xe2\x80\x9c\xe6\x87\x92\xe4\xb8\xbb\xe6\x84\x8f\xe2\x80\x9d\xe2\x80\x94\xe2\x80\x94\xe7\xbb\x99\xe6\x96\x87\xe7\xab\xa0\xe6\xb7\xbb\xe5\x8a\xa0\xe5\xa4\xa7\xe9\x87\x8f\xe7\x9a\x84\xe5\x9b\xbe\xe7\x89\x87\xef\xbc\x8c\xe4\xb8\x80\xe6\x9d\xa5\xe5\x8f\xaf\xe4\xbb\xa5\xe5\xa2\x9e\xe5\x8a\xa0\xe6\x96\x87\xe7\xab\xa0\xe5\x86\x85\xe5\xae\xb9\xef\xbc\x8c\xe4\xba\x8c\xe6\x9d\xa5\xe5\x9b\xbe\xe6\x96\x87\xe7\xbb\x93\xe5\x90\x88\xe7\x9a\x84\xe6\x96\x87\xe7\xab\xa0\xe8\xaf\xbb\xe8\xb5\xb7\xe6\x9d\xa5\xe6\x9b\xb4\xe6\x9c\x89\xe4\xb9\x90\xe8\xb6\xa3\xe3\x80\x82"
  2) "ft:meimei/content"
  3) "nm:meimei/menu_order"
  4) "ft:meimei/fixed"
  5) "ft:meimei/15"
  6) "ft:meimei/\xef\xbc\x89"
  7) "ft:meimei/mp4"

127.0.0.1:6379> exit #退出

3.2 实时搜索效果

启用了RediSearch后,Wordpress搜索的结果会自动展示来自RediSearch索引的结果,同时也支持词语联想,即实时搜索建议,如下图:

四、总结

RediSearch官方宣称对中文搜索已经有了改进,实际测试过程中发现RediSearch对中文搜索不是很友好,但是英文搜索这一块确实非常给力,不仅速度快,而且结果也很准确。

使用RediSearch搜索时关键是配置好RediSearch服务器,由于服务器重启后Redis就会消失,建议在RediSearch插件后台勾选Write redis data to the disk,这样重启后不用重新索引了。

文章出自:挖站否 https://wzfou.com/redisearch/,版权所有。本站文章除注明出处外,皆为作者原创文章,可自由引用,但请注明来源。部分内容参考自wp-bullet

文章更新于: %s = human-readable time difference 下午8:38

Qi

关于站长(Qi),2008年开始混迹于免费资源圈中,有幸结识了不少的草根站长。之后自己摸爬滚打潜心学习Web服务器、VPS、域名等,兴趣广泛,杂而不精,但愿将自己经验与心得分享出来与大家共勉。

查看评论