1 开源库Lucene简介
1.1 原理
1.2 特点
2 作战数据库全文搜索引擎设计
2.1 对异构数据库的支持
表1 数据源配置信息示例 |
数据源 | 配置示例 |
---|---|
我军情报数据源 | name=WJQB type=Oracle address=130.9.100.10:1521:orcl user=wjqb |
海战场环境数据源 | name=HZCHJ type=Access address=D:\data\hzchj.mdb |
2.2 建立索引
表2 索引文档中的字段及含义 |
字段名称 | 字段含义 |
---|---|
索引文档ID | 用来唯一确定一条索引文档的字符串序列 |
内容 | 数据的内容 |
数据源的名称 | 用来标识数据来自哪个数据源 |
表名 | 数据所属的数据表的名称 |
主键信息 | 数据所属的数据表的主键,用来实现反查 |
附加信息 | 在配置文件中定义的通用附加信息 |
自定义信息 | 搜索引擎用户为某个表或某个数据源中的所有表定义的自定义信息 |
表3 搜索引擎提供的扩展点 |
扩展点名称 | 说明 |
---|---|
IndexableFieldProvider | 索引字段提供器。由用户自定义额外的索引字段。 |
RecordFilter | 记录过滤器。由用户指定某条数据库记录是否被索引。 |
2.3 更新索引
2.4 对中文的支持
2.5 实现分类搜索
2.6 实现多种排序方式
2.7 摘要和高亮
3 实验结果与分析
表4 对不同关键词搜索的结果 |
关键词 | 海军 | 雷达 | 坦克 | 飞机 | 港口 |
---|---|---|---|---|---|
结果数 | 11844 | 3488 | 1239 | 421 | 40 |
耗时/ms | 177 | 163 | 181 | 164 | 191 |
表5 不同数据量下搜索的结果 |
数据量/GB | 0.5 | 1 | 1.5 | 2 | 2.5 |
---|---|---|---|---|---|
耗时/ms | 163 | 175 | 188 | 192 | 210 |