由于coreseek带的mmseg默认词库只有1w多个字词,搜索出来的结果准确度不是很理想。花了半天找了下搜索引擎相关的资料,现在记录下一些提高搜索精度的方法和步骤:
1. 基础词库要足够丰富,因为只有基础词库丰富了,才能谈权重设置。
2. 增加相关业务领域的词汇,进一步提升词库量,如果不是做综合搜索,一般都只需要提高自身业务领域的词汇。
3. 记录与收集用户搜索,把搜索记录高的作为新增词汇加入到词库中(前提是词库中不存在这个词)。
所以第一件事就是丰富基础词库,词库可以去搜狗拼音,QQ拼音官网下载。下下来后,统一把词汇进行处理,添加到一个词汇数据表 unigram,这个表只需包含id, word两列,id为自增字段,word为key字段,以保证这个词是独一无二的。
然后写个php脚本,把这个 unigram 表的数据转成 unigram.txt(mmseg要求的字典格式),下面是这个脚本的简单步骤
<?php
set_time_limit(0);
define(IN_SITE, true);
require 'config.php';
require 'db_class.php';
$db = new dbstuff();
$db->connect($dbhost, $dbuser, $dbpw, $dbname);
$max_id = $db->result_first('SELECT MAX(id) FROM unigram2');
$limit = 2000;
$start_page = isset($_GET['id']) ? (int)$_GET['id'] : 0;
$start_id = $limit * $start_page;
if ($start_id > $max_id) exit('ok');
$sql = "SELECT word FROM unigram2 limit {$start_id}, {$limit}";
$query = $db->query($sql);
while ($arr = $db->fetch_array($query)) {
$str .= $arr['word'] . "\t1\r\nx:1\r\n";
}
$file = './unigram3.txt';
$h = fopen($file, 'a');
fwrite($h, $str);
$start_page++;
$url_forward = 'import.php?id='.$start_page;
echo '<script>window.location.href = "'.$url_forward.';;</script>';
?>
得到新增的txt后,把这个txt里的所有内容复制到默认词典的底部。合并原有的的词库。
然后是用mmseg合并词典
cd /usr/local/mmseg3/
bin/mmseg -u etc/unigram.txt
执行上面的命令后,会生成 unigram.uni 文件,把它重命名为uni.lib(原来也有一个,可以对旧的改名)。
此时词库生成,但还需要重新生成一次索引,
cd /usr/local/coreseek
bin/indexer -c etc/xxx.conf --all
重启searchd
bin/searchd -c etc/xxx.conf --stop
bin/searchd -c etc/xxx.conf
至此,扩充词库并应用到索引的过程就完成了!
分享到:
相关推荐
CoreSeek内嵌了诸如MMSEG(Maximum Matching Segmentation)等分词算法,能够更准确地对中文文本进行拆分,从而提高搜索的精度。 在"coreseek-3.2.14-win32"这个压缩包中,我们可以找到以下关键组件和资源: 1. **...
在IT领域,Sphinx、MMSEG、CoreSeek和搜狗词库是四个与搜索引擎和文本处理相关的技术。这里,我们将详细探讨这些技术及其在实际应用中的作用。 首先,Sphinx是一个开源全文搜索引擎,广泛用于网站后台,提供高效、...
Sphinx是由俄罗斯开发的一款高性能、高精度的全文搜索引擎,它具备实时索引、百万级数据量的高速检索能力。Sphinx支持多种数据库,如MySQL,能与多种编程语言无缝对接,如PHP、Python等。在20141224版本的CoreSeek ...
8. **分布式搜索**:当数据量巨大时,CoreSeek支持分布式搜索,可以将索引分散在多台服务器上,提高系统的横向扩展能力。 9. **实时更新**:CoreSeek具有实时索引能力,这意味着数据表更新后,搜索结果能迅速反映...
Coreseek的中文词库包含了大量预处理的词语,使得搜索引擎能够正确识别和理解句子中的词汇关系,提高搜索精度。 2. 日语词库(jauni.txt):日语由汉字、平假名和片假名组成,其分词需要考虑词汇的形态变化和组合...
- 使用布尔运算符、短语匹配、模糊搜索等功能,提高查询的灵活性和精度。 总的来说,CoreSeek41-Windows结合Sphinx和MySQL,为开发者提供了一个强大的中文全文搜索解决方案,适用于新闻网站、电子商务平台、论坛等...
- **高精度匹配**:针对中文的分词问题,CoreSeek采用了先进的中文分词算法,提高了搜索结果的相关性。 - **实时更新**:索引可以实时或近实时地更新,确保数据的时效性。 - **复杂查询支持**:支持布尔运算、短语...
mmseg 是 Coreseek 提供的一个分词工具,用于提高搜索精度。 **步骤:** 1. **安装 mmseg:** - 进入 `mmseg` 目录: ```bash [root@cn huyucheng]# cd mmseg/ ``` - 编译安装: ```bash [root@...
CoreSeek集成了多个中文分词库,如jieba、mmseg等,提高了中文文本的搜索精度。 在《带有sphinx搜索功能的yii2框架实例》这本书中,作者可能详细介绍了如何在Yii2框架中配置和使用Sphinx或CoreSeek。这可能包括以下...
搜狗中文分词词汇与coreseek的结合,使得coreseek能够更准确地识别和划分中文文本中的词语,从而提高搜索结果的相关性和用户体验。 在实际应用中,"word.txt"这个文件很可能是搜狗中文分词词汇的文本形式。这个文件...
在中文分词方面,Sphinx通过与MMseg或类似工具的集成,实现了对中文词汇的精确识别,从而提高搜索精度。 总之,Sphinx作为一个强大的全文搜索引擎,为大型论坛系统如Discuz!提供了高效的全文检索解决方案,解决了...
MMseg 分词器能够较好地处理中文词汇的拆分,减少歧义,提高搜索精度。CSFT 则是专为中文环境优化过的分词组件,与Sphinx 结合更紧密,提供更好的中文支持。 ### 三、Sphinx 安装步骤 1. **安装所需程序库**:确保...