本文目录一览:
- 1、如何使用织梦DedeCMS v5.7全文检索说明
- 2、织梦后台 搜索关键词维护 的分词是干嘛用的?
- 3、PHP类CMS如何自动获取关键字
- 4、织梦站内搜索不到结果?
如何使用织梦DedeCMS v5.7全文检索说明
1.1.开始前的准备工作
先从下载Coreseek 3.2.13,这里我们就以Windows环境为例:
下载后直接解压coreseek-3.2.13-win32.zip,我们这里假设解压到:D:\coreseek-3.2.13-win32.这里我们需要简单了解几个目录:
[D:\coreseek-3.2.13-win32\api]API接口目录,其中包括了php,python,ruby等操作实例,其中test_coreseek.php是一个不错的中文检索的例子.
[D:\****\bin]应用程序目录,其中包含以下几个文件
* indexer: 用于创建全文索引;
* search: 一个简单的命令行(CLI) 的测试程序,用于测试全文索引;
* searchd: 一个守护进程,其他软件可以通过这个守护进程进行全文检索;
* sphinxapi: 一系列searchd 的客户端API 库,用于流行的Web脚本开发语言(PHP, Python, Perl, Ruby, Java).
* spelldump: 一个简单的命令行工具,用于从 ispell 或 MySpell (OpenOffice内置绑定) 格式的字典中提取词条。当使用 wordforms 时可用这些词条对索引进行定制.
* indextool: 工具程序,用来转储关于索引的多项调试信息。 此工具是从版本Coreseek 3.1(Sphinx 0.9.9-rc2)开始加入的。
* mmseg: 工具程序和库,Coreseek用于提供中文分词和词典处理。
[D:\****\etc]sphinx配置目录
[D:\****\var]sphinx变量索引日志存放目录
1.2.创建配置文件
由于dedecms使用的是mysql,所以我们需要来配置一个mysql的sphinx模板配置,可以复制csft_mysql.conf改名为:csft_dedecmsv57.conf,例如我们这里仅做文章的全文检索,我们需要做如下配置:
先在DedeCMS中创建一个统计表,方法可以在DedeCMS后台[系统]-[SQL命令行工具]中执行下列代码:
CREATE TABLE `dede_sphinx` (
`countid` int(11) unsigned NOT NULL,
`maxaid` int(11) unsigned NOT NULL,
PRIMARY KEY (`countid`)
) ENGINE=MyISAM DEFAULT CHARSET=gbk
这是一个sphinx内容统计表,为了适合数据量较大的情况下分批生成索引而使用的.
创建完数据表后,我们对sphinx的配置文件,即csft_dedecmsv57.conf修改,内容如下,其中包含注释:
--------------------------------------------------------------------------------------------
#源定义
source mysql
{
type = mysql
# 数据库服务器基本配置信息
sql_host = 192.168.0.103
sql_user = dedev57
sql_pass = dedecms
sql_db = dedecmsv57gbk
sql_port = 3306
# 设定编码,这里我们是gbk编码,如果是utf-8,可以设置:
# sql_query_pre = SET NAMES utf8
sql_query_pre = SET NAMES gbk
# 数据检索增量
sql_range_step = 1000
#当前最新文档id数
sql_query_pre = REPLACE INTO dede_sphinx SELECT 1, MAX(id) FROM dede_archives
#检索条件
sql_query = SELECT ARC.id,ARC.typeid,ARC.typeid2,ARC.sortrank,ARC.flag,ARC.channel,ARC.ismake,ARC.arcrank,ARC.click,ARC.title,ARC.shorttitle,ARC.color,ARC.writer,ARC.source,ARC.litpic,ARC.pubdate,ARC.senddate,ARC.mtype,ARC.description,ARC.badpost,ARC.goodpost,ARC.scores,ARC.lastpost,ARC.keywords,ARC.mid,ART.body FROM dede_archives AS ARC LEFT JOIN dede_addonarticle AS ART ON ARC.id = ART.aid WHERE ARC.id=$start AND ARC.id=$end #sql_query第一列id需为整数
#title、body作为字符串/文本字段,被全文索引
织梦后台 搜索关键词维护 的分词是干嘛用的?
织梦系统自带了搜索功能,搜索词是指用户在你网站搜索框里搜索过的词语,可以通过搜索词,了解用户需求,发和搜索词相关的文章有利于优化和用户体验,关键词维护是指你发文章时所设置的关键词以及系统匹配出来的关键词,也是个优化相关,望采纳!
PHP类CMS如何自动获取关键字
个人认为,我们还是需要通过在实践中来巩固我们所掌握的知识理论,才能更好的实现我们的学习目标。而且还要不断的更新知识,因为每种语言的更新速度都是很快的,如果不持续的学习,我们所掌握的知识就会很快的被淘汰掉。比如,现在的CMS都自带了采集功能,内容和标题相对来说很好处理,但大部分情况关键词很难能提取到。于是自动获取关键字成为当前PHP类CMS的传统问题。1,PHP类CMS通过分词算法将标题和内容分别进行分割,提取出关键词和频度在内容的分词阶段,当前主要的两个算法是中科院的ICTCLAS和隐马尔可夫模型。但这两个都太高端,有一定的门槛,且都是只支持C++/JAVA。基于PHP的当前有两个是值得推荐的PSCWS和HTTPCWS。而HTTPCWS是张宴开发的,之前叫PHPCWS。PHPCWS 先使用ICTCLAS 3.0 共享版中文分词算法的API进行初次分词处理,再使用自行编写的逆向最大匹配算法对分词和进行词语合并处理,并增加标点符号过滤功能,得出分词结果。目前仅支持Linux/Unix系统。2,PHP类CMS将提取结果与现有词库进行比较,得到最符合规则的关键词这里主要就是要看词库了,我们可以自己定义词库,也可以使用现有的成熟词库。3,然后PHP类CMS将这两套关键词进行比较,得到最符合当前内容的关键词在这个阶段就是具体情况具体分析了。当前PHP类CMS都自有自己的提取关键词系统。其中在网络上流传最广的是DEDECMS的分词源码,我也在我的POPCMS上作过测试,效果很不错,过类似我们等无意义的词提取并被列为关键词的频率太高源码天空,甚至有时候还会把空格的HTML提出来做为关键词,亟待改进。不过如果作为辅助功能,它已经很好了。
织梦站内搜索不到结果?
不少织梦dedecms用户发现自己的站内搜索功能也突然不可用,跳转到404页面,可以参考以下方法检测原因:
查看自己使用的模板是否有search.htm文件,检查search.htm文件的调用标签代码是否完整无错(可以参考dedecms默认模板);
检查模板搜索框的代码是否正确无错,重点留意是否有action=”{dede:field name=’phpurl’/}arch.php”或者是否正确(可以参考dedecms默认模板);
点击搜索后跳转的页面,查看浏览器地址栏的URL地址是否是如下结构:
http://域名usarch.php?kwtype=0keyword=%B9%D8%BC%FC%B4%CA
如果是,则查看程序目录文件夹plus下的search.php文件是否存在,如果不存在,则到官方下载完整的dedecms程序,
找到plus目录下的search.php文件重新上传;如果存在,则替换新的search.php文件试试是否可行;
注意:完成以上任何步骤都需要在重新生成(后台——生成——HTML更新,逐个更新)