Discuz教程网

RDS+opensearch 实现discuz的论坛搜索插件

[复制链接]
authicon dly 发表于 2015-11-27 17:13:08 | 显示全部楼层 |阅读模式
以下内容来自于阿里云开放搜索OpenSearch服务论坛 产品使用分享,欢迎大家下载插件进行测试体验,记得将体验和使用中得问题、建议分享给我们噢~~

上一回讲到了基于RDS+opensearch 的wordpress搜索插件,今天讲一讲基于RDS和opensearch配合使用来替换discuz底层的数据库搜索。

前提:
  • 使用RDS的mysql数据库,并且区域和opensearch所在的区域一致。
  • 开通了opensearch的服务。
  • 测试的的discuz版本3.2 UTF8/GBK。
第一步:创建应用
  • 创建流程和wordpress的基本一致,下载模板文件(请在微博中论坛贴中下载安装),并解压缩。
  • 创建一个模板,选择上传这个模板文件,下一步到完成,模板创建成功。
  • 创建一个应用,应用名例如discuz,然后选择模板,选择你刚刚创建好的模板,下一步一致到完成。

第二步:配置数据源:
  • 点击刚刚创建好的应用,点击数据源,然后点击修改数据源。
  • 会展示3个表,然后选择第一个表forum_thread,点击数据来源,选择rds,点击添加数据。会展示需要的基本配置,输入你的实例ID,数据库名,数据表名(这个为默认为forum_thread,如果你的表有前缀就加上前缀),过滤条件(hidden=0,更多的过滤条件可以自行定义),连接数据库的用户名、密码,然后勾选数据自动同步和同意协议,点连接数据。如果是新版的discuz,所有的字段会默认给匹配上,如下: 005ODmEAjw1eqhss41yunj30ri0ebabo.jpg
  • 点击保存,第一个表就算配完了,为了保险起见(登录过期导致数据没有保存)最好再点击保存,然后在点击修改数据源配置第二个表的信息。
  • 第二个表forum_post 表,填写你的实例ID,数据库名,数据库表名(默认为forum_post 如果表有前缀加上前缀,类似pre_forum_post),过滤条件为first=1(表示主贴),数据库的用户名和密码,然后勾选自动同步和统一协议,点击“连接数据”。默认的库表应该所有的字段都能匹配上,如下图:
005ODmEAjw1eqhssj2g4lj30ri0acmyc.jpg 5. 配置第三个表forum_forum,然后选择rds,点击“添加数据”,同上,区别的地方为表名,默认为forum_forum,如果有前缀的话加上前缀,过滤条件为空。配置好了 点击“连接数据”,在展示中有2个字段,fid和name能默认匹配上,然后点击添加数据,选择fid_name,源字段名称随便选择一个,然后点击内容转换的+,选择第三个插件StringCatenateExtractor, 中的字段列表为"fid,name",字段连接符为"_",点击保存,点击保存,点击保存如下: 005ODmEAjw1eqhstojn7uj30ri0crgnp.jpg
005ODmEAjw1eqhstrnvxwj30ri0cjgm4.jpg 6.保存完了数据源就配置好了,然后点击左侧的搜索结果摘要,点击添加,增加subject 和message两个字段,message 的长度为250(用户自定义,为展示summary的长度),点击保存。
005ODmEAjw1eqhsu4ivt8j30ri04z3yi.jpg
第三步:激活应用
  • 在应用列表中找到这个应用,点击右侧的"激活",选择合适的档位,存储容量<=0.2g免费,qps<=5 免费。点击激活。

第四步:索引重建
  • 点击您的应用,然后点击左侧的“索引重建”,然后点击“手动索引重建”,然后点击“导入数据并重建索引”,选择所有表,然后点击创建。
  • 005ODmEAjw1eqhsv2uq41j30ri0dngmf.jpg
  • 这个时候opensearch控制台的操作完毕,等索引重建完毕的话您的rds数据源的数据会被导入到opensearch里边,并且新增的数据也会实时的进入opensearch。

第五步:配置discuz插件
  • 注意:最好在您的测试的论坛中测试此功能,因为有可能您的操作导致线上的搜索服务不可用。待测试环境测试完毕,再操作线上的服务。另外如果您需要对搜索的样式或者别的内容改动,则可以在测试环境中改好,然后打包到线上。
  • 根据不同的的编码下载不同的插件,UTF编码的请下载:,GBK编码的请下载:(请下载帖子2楼的压缩包),下载完毕解压缩,变成了cloudopensearch 的目录。
  • 复制cloudopensearch目录到discuz主目录下边的/source/plugin/下。
  • 点击“安装”,成功之后,点击“启用”,然后点解开放搜索插件的“设置”如下:
    005ODmEAjw1eqht0t3upfj30o303dq31.jpg
  • 点击“安装”,成功之后,点击“启用”,然后点解开放搜索插件的“设置”如下:

005ODmEAjw1eqht3e8nrkj30ri0hf0um.jpg


6.填写您的阿里云的Access Key Id、secret、host和每页显示条数,accessKeyId和secret 通过登录opensearch控制台,在右上角“ACCESSKEY管理”点击可以获取,host你可以点击你的应用,在基本信息中有API域名。Debug 为调试所用,在打开之后,会在搜索结果的源代码中增加debug信息()。
7.如果确认opensearch中已经有了您导入的所有数据,则可以点击提交,否则最好等opensearch索引重建完毕以后再点击提交。
8.提交以后默认搜索会被替换成opensearch的搜索,搜索结果类似如下: 9.您可以对搜索结果样式、内容进行变更,代码位与:discuz主目录/source/plugin/cloudopensearch下。
10.另外您对搜索结果的排序和权重有自己的看法,例如我想对日期的权重增加,或者对精华帖增加权重等等,但又不是按照日期排序,完全可以在控制台增加表达式来修改任何字段的RANK。

任何使用的问题可随时在qq群(370015616)、旺旺群(1318169830)、论坛中反馈。

原文:http://weibo.com/p/1001603824242130030841






上一篇:论坛引擎 Discuz!团队再次出手,为企业 Excel 重度用户打造协作工具 “伙伴云表格”
下一篇:超级活动 4.2微社区版 价值180元(2015.11.27更新)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

1314学习网 ( 浙ICP备10214163号 )

GMT+8, 2024-4-19 23:52

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表