现在的位置: 首页 > 综合 > 正文

倒排索引 – C/C++

2017年12月27日 ⁄ 综合 ⁄ 共 1392字 ⁄ 字号 评论关闭

hibase 是一个基于倒排索引库libibase的检索系统, libsbase为基础通信库的一套完整搜索引擎系统.

支持增量在线实时索引/实时更新int/long/double类型字段

支持BM25检索算法

支持上下文邻近位置标注的中文短句检索

支持多字段检索

支持聚类(group)

支持数据风险安全过滤(预先处理)

支持数据cache时长自定义

支持自定义打分基数

支持int/long/double范围过滤

支持int/long位操作(屏蔽,过滤)

程序功能介绍

hibase主要包括hidocd,himasterd,hindexd,hiqparserd,hiqdocd

hidocd 数据处理正排生成,正排分发;

himasterd 分布式检索归并节点;

hindexd 索引/检索节点;

hiqparserd query parser节点, 负责把query转换成 检索需要的IQUERY结构;

hiqdocd 文档摘要节点;

以上hiqdocd hiqparserd和hindexd实质是一个程序, 只是根据配置不同完成不同的功能, hindexd可以实现单节点上的数据检索功能,同时hindexd还担负从hidocd接收文档完成倒排索引的功能.

索引过程

数据生成: 生成格式参见ibase.h::{FHEADER}结构; hidocd根据生成的这个文件顺序读取然后处理成正排格式存储到本地db(db.c);

数据分发: hidocd提供http接口管理,可以添加数据节点, 然后根据任务分发数据给对应的hiqparserd hiqdocd hindexd;

数据索引: hindexd接受到数据完成本地倒排;

检索过程

请求方通过himasterd提供的HTTP接口传入传入参数;

himaster本次key => id转换以后把请求串发送给hiqparserd;

hiqparserd对请求参数进行处理,分词query转换成IQUERY结构返回himasterd;

himaster把IQUERY结构转发给hindexd;

hindexd根据IQUERY本地检索完成后返回检索{IRES}+{IRECORD}TOPK

himasterd根据hindexd返回归并排序,并且根据要求cache(CACHE时长可以在请求中定义)

himasterd根据from,count参数发送请求到hiqdocd;

hiqdocd根据请求完成动态摘要以JASON格式返回;

himasterd返回JASON格式的结构(可以要求是否需要做摘要)

 

安装和配置

通信基本库: libevbase libsbase http://code.google.com/p/sbase/downloads/list

倒排索引库: libibase http://code.google.com/p/libibase/downloads/list

检索系统: hibase http://code.google.com/p/libibase/downloads/list

按照列表顺序下载最新版本进行安装 : ./configure --prefix=/usr && make

可以参考rpms(centos 5.5)已经编译好的版本使用;

有问题可以给我的mail/MSN: sounos@gmail.com

原文URL:http://bbs.chinaunix.net/thread-1187515-1-1.html

抱歉!评论已关闭.