参考资料:

学习Xapian(1)-基础的建索引和搜索

1. Xapian中用于搜索的类

Enquire - 提供了检索的接口;(Enquire API

QueryParser(QueryParser API) - 解析待查找的字符串,返回Query(Query API);

MSet - 用于搜索结果的存储和显示;(MSet API

2. 实战

@ 检索流程

打开Xapian::Database,数据库中可以使用Database::add_database()函数包含多个索引;

根据database构造Xapian::Enquire,提供检索接口;

创建Xapain::QueryParser,解析待查找的字符串,生成Xapian::Query;

‘利用Enquire对象将解析后的字符串加入查询会话中;

使用Enquire::get_mset()函数返回MSet,得到查询结果;

使用MSetIterator对象对结果进行显示;

@ sample

 // 创建待搜索数据库
Xapian::Database searchdb;
searchdb.add_database(dba);
searchdb.add_database(dbb); // 生成查询会话
Xapian::Enquire enquire(searchdb); // 解析待查找字符串
Xapian::QueryParser qp;
qp.set_database(searchdb);
qp.set_stemming_strategy(Xapian::QueryParser::STEM_NONE);
Xapian::Query query = qp.parse_query("待查找字符串"); // 将解析后的字符串加入会话
enquire.set_query(query); //得到查询结果
Xapian::MSet matches = enquire.get_mset(, ); // 显示前10个结果 // 显示结果
for (Xapian::MSetIterator idx = matches.begin(); idx != matches.end(); ++idx) {
std::cout << idx.get_rank()+ << ":"
<< idx.get_percent() << "% docid = " << *idx
<< " [" << i.get_document().get_data() << " ]"
<< std::endl << std::endl;
}

Xapian实战(四):搜索的更多相关文章

  1. coreseek实战(四):php接口的使用,完善php脚本代码

    coreseek实战(四):php接口的使用,完善php脚本代码 在上一篇文章 coreseeek实战(三)中,已经能够正常搜索到结果,这篇文章主要是把 index.php 文件代码写得相对完整一点点 ...

  2. gRPC学习之四:实战四类服务方法

    欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...

  3. 恶意代码分析实战四:IDA Pro神器的使用

    目录 恶意代码分析实战四:IDA Pro神器的使用 实验: 题目1:利用IDA Pro分析dll的入口点并显示地址 空格切换文本视图: 带地址显示图形界面 题目2:IDA Pro导入表窗口 题目3:交 ...

  4. Python爬虫实战四之抓取淘宝MM照片

    原文:Python爬虫实战四之抓取淘宝MM照片其实还有好多,大家可以看 Python爬虫学习系列教程 福利啊福利,本次为大家带来的项目是抓取淘宝MM照片并保存起来,大家有没有很激动呢? 本篇目标 1. ...

  5. Xapian实战(二):core concepts

    参考资料 core concepts 正文 1. 并发性 xapian不包含任何全局变量,所以多线程编程中,在没有共享资源的情况下可以安全使用xapian.在实际操作中,由于每个线程都可以创建自己的x ...

  6. SpringSecurity权限管理系统实战—四、整合SpringSecurity(上)

    目录 SpringSecurity权限管理系统实战-一.项目简介和开发环境准备 SpringSecurity权限管理系统实战-二.日志.接口文档等实现 SpringSecurity权限管理系统实战-三 ...

  7. miniFTP项目实战四

    项目简介: 在Linux环境下用C语言开发的Vsftpd的简化版本,拥有部分Vsftpd功能和相同的FTP协议,系统的主要架构采用多进程模型,每当有一个新的客户连接到达,主进程就会派生出一个ftp服务 ...

  8. Xapian实战(三):索引

    参考资料: Xapian:Document, Value和Term Xapian:Database Xapian机制简要介绍 1. Xapian中各类要点总结 @ Database Database ...

  9. C# Redis实战(四)

    四.写入数据 在C# Redis实战(三)中我们已经配置好了web.config程序,并且能通过C#代码来读取和管理以上配置信息. 接下来,就可以进行Redis的数据写入了.Redis中可以用Stor ...

随机推荐

  1. Vim中实现PHP函数tags跳转

    编译安装ctags 下载地址:http://ctags.sourceforge.net/ 下载文件:ctags-5.8.tar.gz 解压ctags:tar -zxcf ctags-5.8.tar.g ...

  2. C/C++内存详解

    众所周知,堆和栈是数据结构中的两种数据结构类型,堆是一种具有优先顺序的完全二叉树(或者说是一种优先队列,因为它在一定的优先顺序下满足队列先进先出的特点),排队打饭就是它的典型实例,栈是一种后进先出的数 ...

  3. 【java 数据结构】还不会二叉树?一篇搞定二叉树

    二叉树是我们常见的数据结构之一,在学习二叉树之前我们需要知道什么是树,什么是二叉树,本篇主要讲述了二叉树,以及二叉树的遍历. 你能get到的知识点? 1.树的介绍 2.二叉树的介绍 3.二叉树遍历的四 ...

  4. python 自动生成model 文件 案例分析

    生成方式 Python中想要自动生成 model文件可以通过 sqlacodegen这个命令来生成对应的model文件 sqlacodegen 你可以通过pip去安装: pip install sql ...

  5. 一个不错的java学习博客

    http://iteye.blog.163.com/blog/static/18630809620131484835129/

  6. 做一个通过dockerfile从零构建centos7.4

    今天做一个dockerfile从零构建centos7.4镜像 废话不多说,很简单. 需要的软件包:centos7.4的rootfs 链接:提取码:usnu 下载以后我们打开看看里面是什么呢: 可以看的 ...

  7. 背景知识+监督和无监督学习辨析+预备知识(1-1—1-4/用时4h)

    1-1/1.2,基本上都是一些基础知识,机器学习的背景,发展,概念,用途 1-3,监督学习: 数据集类型已知,数据信息为已知正解--由已知正解推测趋势(拟合分布函数)-- 给出的模型例子--基本类似于 ...

  8. 使用d3.js的时候,如何用zoom translate scale限制拖拽范围

    红色代表需要改写的代码 1.添加定义图像大小和容器的大小及坐标 d3.behavior.zoom = function () { var moveCanvas={ width: , height: , ...

  9. Dom节点操作总结

    Dom   一:Dom的概念 Dom的简介:  全称为 document object model  文档对象模型,是操作文档的一整套方法 - 文档 - html,document时一个对象,是dom ...

  10. Linux学习笔记(五)搜索命令

    搜索命令 whereis which locate find whereis 英文原意:locate the binary,source,and manual page files for a com ...