- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
使用Xapian搭建自己的搜索引擎
因为Clucene对中文的支持很不给力,所以我决定用Xapian,Xapian里的所有东西都是用UTF-8来保存的.
关于Xapian是什么,怎么安装这位兄台讲得不错 ,我就不复制了。
xapian-bindings我装的是Perl语言接口。
Perl模块Search::Xapian下载下来后手动安装,注意第一步应该指定 XAPIAN_CONFIG:
$ perl Makefile.PL? XAPIAN_CONFIG=/opt/bin/xapian-config
Xapian让我崩溃了一整天,编译官网上给我QuickStart程序时可以找到头文件xapian.h,但总是说Xapian命名空间中的各种方法都是Undefined reference to xxx,我在/usr/local/lib下确实有xapian的那几个库文件,而且 /usr/local/lib也加到了 /etc/ld.so.conf中。
解决方法,编译时指定lib库:
orisun@zcypc:~$ g++ -o asd -L/usr/local/lib -l xapian a.cc
或者g++ a.cc -o a -lxapian
orisun@zcypc:~$ ./asd
usage: ./asd path to database document data document terms
orisun@zcypc:~$ ./asd info en xapian open
先来了解一下Xapian中的基本概念。
Xapian支持的搜索功能Xapian允许开发人员轻易地添加高级索引和搜索功能。它在支持概率论检索模型的同时也支持布尔型操作查询集。概率性搜索排名--重要的词语会比不那么重要的词语得到更多的权重,因此与权重高的词语关联的Documents会排到结果列表的更前面。相关度反馈--通过给予一个或多个Documents,Xapian可以显示最相关的Terms以便扩展一个Query,及显示最相关的Documents。词组和邻近搜索--用户可以搜索一个精确短语或指定数组的词组。全方位的布尔型搜索器,例如 (stock NOT market,etc。支持提取搜索关键字的词干,例如当搜索“football”的时候,当Documents中含有footballs或footballer的时候也被认作符合。词干提取器支持很多西文,但很遗憾不支持中文。支持通配符查询,例如“xap*”。支持别名查询,打个比方,C++++会自动转为CPlusPlus,C#则自动转为CSharp。Xapian支持拼写纠正,例如xapain会被纠正为xapian,当然这必须基于词组已经被索引了。Xapian的存储系统Xapian现在的版本默认是使用flint作为存储系统,flint是以块的形式来存储,默认每块是8K,理论上每一个文件最大可以达到2048GB。Xapian的Terms和Documents都是使用B-树来存储的,具有增删改查比较方便迅速的特点,缺点则是如果索引被删除后的空间不能重复利用,为了提高性能,通常要经常重建索引。Xapian的性能在5亿个网页共1.5TB大小的文件中,搜索只需要小于一秒就完事了。准确率和召回度准确率也称为精度,举个例子,一个数据库有500个文档,其中有50个文档符合定义的问题。系统检索到75个文档,但是只有45个符合定义的问题。召回率R=45/50=90%?精度P=45/75=60%因此在召回率与准确率中,Web搜索引擎会更倾向于后者,因为终端用户最想得到的他们要想得到的数据,而不是一堆似是而非的数据。但是,对于一个传统的图书信息检索系统,情况会大不相同。?性能常见的存储方式是将索引和数据即文章内容)分开存放,以各种树红黑树、AVL树或B*树)来存储方式问题其实还不大。不过千万别以为IR系统一切都比关系数据库要好,IR系统的其中一个弱点是插入、修改和删除都相对缓慢,因为是中间要经过多层的工序处理,所以IR系统的首要任务是检索,其次才是存储。在Xapian里,布尔型风格的查询都可以在检索得出documents集合结果后,然后使用概率性的排序。Xapian默认的排序模式称为BM25Weight,这是一种将词频和document等元素出现的频率通过一个固定的公式得出排序权重的模式,权重越高则相关度越高,如果不想使用BM25Weight作为排序模式,可以使用BoolWeight,BoolWeight模式里的各种元素的权重都为0。布尔型检索和概率性检索有两种组合的方式:先用布尔型检索得到所有documents中的某个子集,然后在这个子集中再使用概率性检索。 先进行概率性检索,然后使用
您可能关注的文档
最近下载
- 2025版《煤矿安全规程》宣贯培训课件.pptx VIP
- 2025年中国石油数智研究院秋季高校毕业生招聘60人笔试上岸历年真考点题库附带答案详解.doc
- 变电所改造工程施工方案(3篇).docx VIP
- 欧洲标准化委员化BS EN 10283 - 2010.pdf VIP
- 2025年中国石油数智研究院招聘笔试备考题库(带答案详解).pdf
- 期末模拟质量检测卷-2024-2025学年统编版语文三年级上册.docx VIP
- 山东省建筑施工企业安全生产管理人员安全生产知识考试题库(含答案).pdf VIP
- 城市规划设计计费(2004)中规协秘字第022号.pdf VIP
- 数据库原理及应用教程(MySQL版)全套教学课件.pptx VIP
- 关爱困境儿童让爱守护成长PPT模板.pptx VIP
文档评论(0)