欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

优化全文索引,支持自定义索引名称

shiping1 的头像

 

 

[图文教程]优化全文索引,支持自定义索引名称

 
楼主#
更多发布于:2009-11-14 23:25
全文索引是75推出的新功能,引进sphinx专业的检索技术,用来提高站点搜索效率和质量。


sphinx是一个基于SQL的全文检索引擎,可以结合mysql等做全文搜索,提高比数据库更为专业的搜索功能,使得应用程序更容易实现专业的全文检索

sp2进一步优化了全文索引技术,扩展其应用面,更进一步帮助站点运营。

1. 在后台帖子管理处增加全文索引功能
中大型站点拥有比较庞大的数据库,平常的数据库检索功能很容易导致”龟速“,甚至出现”无响应“或数据库崩溃的现象。
因此,我们在后台帖子管理处增加全文检索功能,帮助减轻数据库压力,并能够在庞大的数据库中快速得到想要的结果。

主机的全文检索配置方法>>>

操作路径:
后台->内容版块->内容管理->帖子管理


当系统开启了全文搜索功能,且配置有相应的索引时,系统默认处于全文搜索状态:
 
   

1. 勾选全文索引搜索
2. 填入关键词
3. 选择搜索范围

提交即可完成搜索。

2. 增加自定义索引名称功能
先前,站长在参照官方文件建立索引时,必须使用官方确定的索引名称,否则将无法使用索引。在一定程度上在配置上给了站长一定的限制,不利于体验和使用。
另一方面,固定的索引名称导致,当该条索引一不小心被妈妈喊回家吃饭,会员就该无法使用站点搜索了。
因此,我们增加了自定义索引名称的功能,实现配置完全自主化,更重要的是,可以帮助站点可以随时使用备份索引。

设置路径:
后台->创始人->高级应用配置->Sphinx全文索引

   
其中:
全文索引评分模式:
    SPH_RANK_PROXIMITY_BM25, 默认模式,同时使用词组评分和BM25评分,并且将二者结合。[默认]
    SPH_RANK_BM25,统计相关度计算模式,仅使用BM25评分计算(与大多数全文检索引擎相同)。这个模式比较快,但是可能使包含多个词的查询的结果质量下降。
    SPH_RANK_NONE,禁用评分的模式,这是最快的模式。实际上这种模式与布尔搜索相同。所有的匹配项都被赋予权重1。

全文索引分组属性:
    SPH_GROUPBY_DAY,从时间戳中按YYYYMMDD格式抽取年、月、日。
    SPH_GROUPBY_WEEK,从时间戳中按YYYYNNN格式抽取年份和指定周数(自年初计起)的第一天。
    SPH_GROUPBY_MONTH,从时间戳中按YYYYMM格式抽取月份。
    SPH_GROUPBY_YEAR,从时间戳中按YYYY格式抽取年份。
    SPH_GROUPBY_ATTR,使用属性值自身进行分组。[默认]

3. 备份举例

配置文件下载:  csft.rar  

以上是系统默认配置文件。你可以找到你的配置文件,参照我的,对数据索引进行备份。
在配置文件中,你可以看到主题索引配置 index threadsindex

现在我拷贝它,并放在它的下边,在文件里你可以清楚的看到。

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
index threadsindex1
{
        source                                  = threads
        path                                    = C:\csft\data\threads
        docinfo                                 = extern
        charset_type                            = zh_cn.gbk
        #min_prefix_len  = 0
        #min_infix_len  = 2
        #ngram_len = 2
        charset_dictpath                        = C:\csft\data
        min_prefix_len                          = 0
        min_infix_len                           = 0
        min_word_len                            = 2
}


保存以后,在进入命令行,重新生成一下索引:

复制代码
1
2
cd csft\bin /*进入bin目录*/
indexer.exe --all  /*重生成所有的索引文件*/



完成以后,主题索引的备份threadsindex1已经完成了。
如果系统原先的threadsindex出现问题不能用了,直接到 后台->创始人->高级应用配置->Sphinx全文索引 
将[主题索引]名称 修改成threadsindex1就可以了。

来自 http://www.phpwind.net/read.php?tid=883505

 

普通分类: