![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
xapian
梦中飞
这个作者很懒,什么都没留下…
展开
-
Xapian :Document、Term和Value
在信息检索(IR)中,我们企图要获取的项称之为“document”,每一个document是被一个terms集合所描述的。“document”和“term”这两个词汇是IR中的术语,它们是来自“图书馆管理学”的。通常一个document认为是一块文本,. Usually a document is thought of as a piece of text, most likely in a ma转载 2016-01-19 17:26:24 · 520 阅读 · 0 评论 -
Xapian:Database
在Xapian1.0之前,是使用quartz作为database文件格式的,不过自从1.0之后,便改用Flint作为database的文件格式了。有时候,我们会将database称为“索引”,在Xapian中,索引通常比被索引的documents还要多,这表示Xapian做一个信息检索系统比做一个信息存储系统更适合。 Database的存储结构Xapian的database是所有用于检转载 2016-01-19 17:27:50 · 304 阅读 · 0 评论 -
xapian简介
Xapian与开源Xapian的官方网站是http://www.xapian.org,这是一个非常优秀的开源搜索引擎项目,搜索引擎其实只是一个通俗的说法,正式的说法其实是IR(Information Retrieval)系统。Xapian的License是GPL,这意味着允许使用者自由地修改其源码并发布之。Xapian的中文资料非常少,可以说现在互联网上连一篇完整详细的Xapian中文介绍文档转载 2016-01-19 17:28:51 · 1547 阅读 · 0 评论 -
Xapian:检索
经过前面几篇的介绍,如果再参考一下Omega的话,估计应该可以顺利创建database和往database里添加document了。有了数据,下一步关心的当然是怎样将它们查出来,在一个IR系统(不单止Xapian)中,检索的方式是多元化的,排序则是多样化的,结果则是人性化的,这就是跟关系数据库相比的最大优势。由于内容较多,因此将检索、排序和取得结果分开讲述,这一篇先讲述如何检索。IR系统有这么转载 2016-01-19 17:30:20 · 370 阅读 · 0 评论 -
学习Xapian(1) – 基础的建索引和搜索
Xapian是一款开源的C++信息检索系统,提供了非常强大的功能。国人喜欢跟风,收到某宴的影响,国人一直推崇Sphinx:与MySQL深度集成,开箱即用,非常傻瓜。但是它定制起来非常的麻烦,就连最基础的中文分词都要改好多地方才能实现。与市面上其他的信息检索相比,Xapian类似于Lucene,提供丰富、可拓展的编程接口,让Xapian能够更好的融入你的系统中。同时,他的检索性能又远转载 2016-01-19 17:32:52 · 409 阅读 · 0 评论 -
学习Xapian(2) – 拼写校正
Xapian提供了拼写校正功能,其基本算法就是编辑距离,只不过它支持UTF-8,也就是说是支持中文的。1、建立拼写校正辞典虽然编辑距离的算法很土很原始,但是Xapian提供了方便的接口建立辞典,至少有如下两种方式:(1)Xapian::WritableDatabase.db.add_spelling(word, freq)word就是正确的词,freq是出现频率,默认是1。转载 2016-01-19 17:33:48 · 435 阅读 · 1 评论 -
学习Xapian(3) – 同义词的查询拓展
Xapian支持同义词的查询拓展。按照同义词进行拓展算是查询拓展最基本的一种方式。比如“汽车展览”和“车展”是同义词,我们搜索汽车展览的时候,也会把“车展”的结果返回。很多人认为这个就是拼写校正,但实际它比拼写校正稍微高级点,特别是放在Xapian的语境下,毕竟拼写校正是基于编辑距离而不是语义的。1、在DB写入同义词组创建同义词组的API很简明。WritableData转载 2016-01-19 17:34:34 · 366 阅读 · 0 评论 -
学习Xapian(4) – Faceting Search(Filter)
在信息检索中,有一类任务叫做Faceting Search,在Wikipedia中的定义如下:Faceted search, also called faceted navigation or faceted browsing, is a technique for accessing a collection of information represented using a fa转载 2016-01-19 17:35:25 · 395 阅读 · 0 评论