在信息检索中,有一类任务叫做Faceting Search,在Wikipedia中的定义如下:
Faceted search, also called faceted navigation or faceted browsing, is a technique for accessing a collection of information represented using a faceted classification, allowing users to explore by fil[......]
Category Archives: 搜索技术
Leave a reply
学习Xapian(3) – 同义词的查询拓展
Xapian支持同义词的查询拓展。
按照同义词进行拓展算是查询拓展最基本的一种方式。
比如“汽车展览”和“车展”是同义词,我们搜索汽车展览的时候,也会把“车展”的结果返回。
很多人认为这个就是拼写校正,但实际它比拼写校正稍微高级点,特别是放在Xapian的语境下,毕竟拼写校正是基于编辑距离而不是语义的。
1、在DB写入同义词组
创建同义词组的API很简明。
WritableDatabase::add_synonym(term, synonym)
这一对同义词是有方向的,term[......]
学习Xapian(2) - 拼写校正
Xapian提供了拼写校正功能,其基本算法就是编辑距离,只不过它支持UTF-8,也就是说是支持中文的。
1、建立拼写校正辞典
虽然编辑距离的算法很土很原始,但是Xapian提供了方便的接口建立辞典,至少有如下两种方式:
(1)Xapian::WritableDatabase.db.add_spelling(word, freq)
word就是正确的词,freq是出现频率,默认是1。
频率的作用是这样的,如果对于一个词比如篮球和蓝球,前者add了4次,后者出现了3词,那么当对"兰[......]
学习Xapian(1) - 基础的建索引和搜索
前言:
Xapian是一款开源的C++信息检索系统,提供了非常强大的功能。
国人喜欢跟风,收到某宴的影响,国人一直推崇Sphinx:与MySQL深度集成,开箱即用,非常傻瓜。但是它定制起来非常的麻烦,就连最基础的中文分词都要改好多地方才能实现。
与市面上其他的信息检索相比,Xapian类似于Lucene,提供丰富、可拓展的编程接口,让Xapian能够更好的融入你的系统中。同时,他的检索性能又远远高于Lucene,并采用BM-25模型,具有更好的检索效果。
至于大家最关心的[......]