参考资料:

学习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;
}

最新文章

  1. android--asp.net webservice 返回json
  2. MySQL的相关设置
  3. c#问答篇:对象与引用变量-----初学者的困惑
  4. HTML入门教程(全套)
  5. xxx is not in the sudoers file. This incident will be reported的解决方法
  6. Scala分号推断
  7. 归并排序——Merge Sort
  8. caffe深度学习进行迭代的时候loss曲线开始震荡原因
  9. 移动硬盘插到台式机,外接网卡无法连接wifi处理
  10. RocketMQ 事务消息
  11. GDKOI2018发烧记
  12. nyoj 1238(BFSor最短路)
  13. Delphi Berlin 窗体代码分离风格 回到Delphi7传统风格
  14. DateFormat工具类
  15. leetCode题解之寻找一个数在有序数组中的范围Search for a Range
  16. 论C语言中二级指针和二维数组之间的区别
  17. [转]js清除所有cookies
  18. 递归中traverse小人 &amp; dc女王的区别
  19. 【第七章】MySQL数据库备份-物理备份
  20. HihoCoder 1044 垃圾清理 (优化:状态压缩)

热门文章

  1. PHP中涉及文件路径的讨论
  2. 【数据库】MySQL数据库(四)
  3. 关于android中数据库的创建以及基础的增删改查的相应操作
  4. Linux基础篇,正则表达式
  5. Python爬虫 ---scrapy框架初探及实战
  6. "格式化的文本"组件:&lt;span&gt; —— 快应用原生组件
  7. Linux c++ vim环境搭建系列(0)——简介
  8. 生成3D多棱柱的方法(3D立体图片)
  9. [总结]Floyd算法及其应用
  10. 同事上班时间无聊,用python敲出贪吃蛇游戏打发时间