Tag Archives: 学习笔记

学习Xapian(3) – 同义词的查询拓展

Xapian支持同义词的查询拓展。
按照同义词进行拓展算是查询拓展最基本的一种方式。
比如“汽车展览”“车展”是同义词,我们搜索汽车展览的时候,也会把“车展”的结果返回。
很多人认为这个就是拼写校正,但实际它比拼写校正稍微高级点,特别是放在Xapian的语境下,毕竟拼写校正是基于编辑距离而不是语义的。

1、在DB写入同义词组
创建同义词组的API很简明。
WritableDatabase::add_synonym(term, synonym)
这一对同义词是有方向的,term[......]

继续阅读

学习Xapian(1) - 基础的建索引和搜索

前言:

Xapian是一款开源的C++信息检索系统,提供了非常强大的功能。

国人喜欢跟风,收到某宴的影响,国人一直推崇Sphinx:与MySQL深度集成,开箱即用,非常傻瓜。但是它定制起来非常的麻烦,就连最基础的中文分词都要改好多地方才能实现。

与市面上其他的信息检索相比,Xapian类似于Lucene,提供丰富、可拓展的编程接口,让Xapian能够更好的融入你的系统中。同时,他的检索性能又远远高于Lucene,并采用BM-25模型,具有更好的检索效果。

至于大家最关心的[......]

继续阅读

Linux解析命令行参数 - getopt

通常 Linux 下的各种命令都有许多的命令行参数可以选择,比如:
gcc -g -lm foo.c -o foo
getopt()就是用来分析命令行参数的函数。
在继续讨论getopt 之前,先要明确两个概念:选项(option) 和 选项参数(argument)。
在上面的例子中,-g 中的 g,-o 中的 o 还有 -lm 中的 l 就是选项,而 -lm 中的 m 就是 l 的选项参数,-o foo 中的 foo 就是 o 的选项参数。因此,我们知道了选项有两种,一种是带选项参数的[......]

继续阅读

iptables学习笔记

1、概念

iptables有2个表:filter和nat。前者用于过滤,后者是nat用的。

iptables还有4个链:INPUT、FORWARD、PREROUTING、POSTROUTING。

前两者对应于filter表,INPUT匹配目的IP是本机的数据包,FILTER匹配穿过本机的数据包。

PREROUTING位于NAT表,用于修改目的地址(DNAT);POSTROUTING用于修改源地址(SNAT)。

2、基本命令

命令的格式是:

iptable[......]

继续阅读