- 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构建自己的 搜索.doc
1. 前言
1.1. Xapian与开源
Xapian的官方网站是,这是一个非常优秀的开源搜索引擎项目,搜索引擎其实只是一个通俗的说法,正式的说法其实是IR(Information Retrieval)系统。Xapian的License是GPL,这意味着允许使用者自由地修改其源码并发布之。Xapian的中文资料非常少,可以说现在互联网上连一篇完整详细的Xapian中文介绍文档,更别说中文API文档了。其实,Xapian的英文资料也不多,除了官方网站上的Docs和Wiki外,还有一些网站上的邮件列表,在这方面跟Lucene没得比。当然,Lucene现在已经发展到2.x版本了,而Xapian的最新版本才1.012,国外开源项目一般对版本号控制得比较严格,一个项目一般到了1.x才算稳定和成熟的。
1.2. Xapian可以运行在那些平台?
Xapian由C++++编写,但可以绑定到Perl, Python, PHP, Java, Tcl, C# 和Ruby甚至更多的语言,Xapian可以说是STL编程的典范,在这里您可以找到熟悉的引用计数型智能指针、容器和迭代器,甚至连命名也跟STL相似,相信一定能引起喜好C++++和STL的你的共鸣(实际上,很少C++++程序员完全不使用STL)。由于Xapian使用的是STL和C运行时库,因此具有高度可移值性,官方说法是可以运行在Linux、 Mac OS X、 FreeBSD、 NetBSD、 OpenBSD、Solaris,、HP-UX,、Tru64和IRIX,,甚至其它的Unix平台,在Microsoft Windows上也跑得很好。当然,并不能像Java那样“一次编译,到处可以运行”,当移植到其它平台时,一般来说是需要重新编译的。至于如何在Windows32位系统下编译Xapian,请查阅我以前写的文章《nmake在windows平台下编译xapian》。
1.3. Xapian的特性
依官方的说法,Xapian是一个允许开发人员轻易地添加高级索引和搜索功能到他们的应用系统的高度可修改的工具,它在支持概率论检索模型的同时也支持布尔型操作查询集。 从功能特性上来说。Xapian和Lucene有点相似,两者都具有Term、Value(在Lucene里称为SortField)、Posting、Position和Document,不过Xapian没有Field的概念,这直接导致Xapian在使用上比Lucene麻烦了那么一点。但这完全不是问题,通过一些小技巧,完全可以自己在Xapian中实现Filed的概念。在Lucene里还有一个叫Payload的元素,即词条 (Term) 的元数据或称载荷。举一个例子,“回家吃饭吧”和“快回家吃饭”这两个句子都带有“吃饭”这个词语,但在检索的时候怎样才能将语气表达出来呢?虽然可以添加Term来解决这个问题,但由于Term的索引信息和存储信息是分开放的,相对来说I/O性能较差,Payload就是应这个问题而生的,因为Payload信息是直接放在索引里的。由于对Xapian的研究还不是很深,Xapian里是否有类似Payload这个概念,还需要继续研究。
1.4. Xapian与搜索
搜索的目的是将结果数据展现给终端用户,搜索引擎与普通的数据库查询最大的区别就在于查询。Xapian提供了多种的查询机制。 概率性搜索排名 – 重要的词语会比不那么重要的词语得到更多的权重,因此与权重高的词语关联的Documents会排到结果列表的更前面。 相关度反馈 – 通过给予一个或多个Documents, Xapian可以显示最相关的Terms以便扩展一个Query,及显示最相关的Documents。 词组和邻近搜索 -- 用户可以搜索一个精确短语或指定数组的词组。 全方位的布尔型搜索器,例如 (stock NOT market, etc)。 支持提取搜索关键字的词干,例如当搜索“football”的时候,当Documents中含有footballs 或footballer的时候也被认作符合。这有助于找到相关结果,否则可能错过之。词干提取器现在支持Danish、Dutch、 English、 Finnish、 French、 German、 Hungarian、Italian、 Norwegian、Portuguese、Romanian、 Russian、Spanish、Swedish和Turkish。 支持通配符查询,例如“xap*”。 支持别名查询,打个比方,C++++会自动转为CPlusPlus,C#则自动转为CSharp。 Xapian支持拼写纠正,例如xapian会被纠正为xapain,当然这必须基于词组已经被索引了。这特性跟Google提供的“你是
您可能关注的文档
最近下载
- 食品生产监督检查要点_培训讲座课件.pptx
- 变更工程施工方案申请(3篇).docx VIP
- 智慧方案智慧矿山整体解决方案(41页PPT).pptx VIP
- 舒曼声乐套曲《戒指在我手上》Op.42, No.4 (Du Ring an meinem Finger)声乐+钢琴伴奏谱 带歌词.pdf VIP
- ISO11898-2中文版完整文件.docx VIP
- 职业病知识培训职业健康检查课件.pptx VIP
- 2025版《煤矿安全规程》宣贯培训课件.pptx VIP
- 球磨机安全事故案例课件.pptx VIP
- 药物不良反应的识别与处理.pptx VIP
- T_CCMA 0113-2021 高空作业车 检查与维护规程.docx VIP
文档评论(0)