852049244 发表于 2016-1-4 13:59:26

社区全文检索引擎Hyper Estraier 学习笔记[2]

hyperestraier是在前文已经介绍过一的一个开源搜索引擎程序。
分词:采用N-gram,char_category等来分词,良好地支持中文等东亚文字。
分词程序在:estraier.c中
est_break_text
est_break_text_perfng
est_break_text_chrcat
等分法。
相关的函数有
276 static int est_char_category(int c);
277 static int est_char_category_perfng(int c);
278 static int est_char_category_chrcat(int c);


分词默认采用est_break_text
当创建数据库时采用 estcmd create dbname -apn 时,采用est_break_text_perfng来分词
当创建数据库时是用 estcmd create dbname -acc 时,用est_break_text_chrcat来分词
采用est_break_text来分词时,结果这样样的:
今天 天突 突然 然想 想起 起霍 霍炬 炬曾 曾告 告诉 诉过 过我 我的 的一 一个 个日 日本 本人 人开 开发 发的 的全 全文 文检 检索 索引 引擎 擎, , 于是 是找 找他 他问 问了 了,
是双字连着的分词法,这样会占用多至少一倍的检索空间,同时精确度差一点(但是精确度比按字分词好一点)。
页: [1]
查看完整版本: 社区全文检索引擎Hyper Estraier 学习笔记[2]