ZKEACMS默认是不支持搜索功能的。但是搜索功能是比较常用的一个功能,使用这个搜索插件,可以让CMS支持搜索:
如下图所示:
数据库 Microstft Sql Server 2008R2 以上
页面的索引主要是运用了MsSql的全文索引,如果你还不了解全文索引,可以使用以下链接来了解全文索引的相关知识 https://docs.microsoft.com/zh-cn/sql/relational-databases/search/full-text-search
目前仅支持MsSql数据库,如果正好你不是使用MsSql数据库的话,也没有关系,它将很容易改造成与数据库无关的 Elasticsearch 或者 Solr 或者其它的搜索组件。或者使用对应数据库的全文索引。我们只是做好了一个脚手架。
初始化数据库
数据库脚本在目录DbScripts下。全文索引数据库,可以直接创建在CMS数据下,或者另外建一个数据库用于存储页面的索引数据。
dbo.WebPages.Table.sql
这个脚本用于创建WebPages表并对该表创建一个中文的全文索引。如果不是用独立索引数据库,这个脚本可直接在CMS数据库中执行。如果要用独立的数据库,手动创建数据后,在新的数据库中执行该脚本即可。
dbo.CMS_WidgetTemplate.sql
这个脚本在CMS数据库中执行。用于添加一个搜索的组件。
配置 appsettings.json
这个是搜索插件的配置文件
ConnectionString 索引数据库的连接字符串
Command dotnet命令,如果没有设置Path或是Linux,可能需要设置完整的dotnet路径
Host 域名或者是某个页面的地址,搜索插件中的爬虫将会爬该域名下或页面下的所有链接都索引起来。
索引页面
在搜索插件开始使用之前,需要先索引全部的页面。
方式一
在后台的 全站搜索 目录下点击 开始索引 按钮。注意先给角色添加权限。
方式二(推荐)
由于页面的内容是在不断变化的,所以需要定时更新索引的页面内容。搜索插件,其实也是一个完整的.net core程序,可以使用dotnet命令来运行。 dotnet ZKEACMS.Search.dll
。这样一来,就可以添加一个计划任务,来定时启动这个搜索索引程序。注意配置文件(appsettings.json)要在同一目录下。如果是开发环境,可以直接鼠标右键->调式->启动新的实例来启动爬虫程序。
开始搜索
编辑你的任意页面,或者添加一个页面。然后往页面中添加搜索插件。
插件源代码
https://github.com/SeriaWei/ZKEACMS.Core/tree/search/src/ZKEACMS.Search