lucene排序算法除了分析查询关键词与文档的匹配度以外还包括其它的排序因子,先着重讨论经过向量空间模型分析查询关键词与文档的匹配度问题。算法
在向量空间模型中有两种基本的距离度量方式即:欧式距离和余弦距离,而求匹配度时采用的是余弦距离而不是欧式距离,我的理解以下:blog
一、文档由句子构成、句子由词和短语构成、短语由词构成,且要真正理解一篇文档须要考虑句子与句子的顺序、词和短语的顺序、词和词的顺序等等,向量空间模型简单的认为文档是由n个词构成的,而且词与词之间是正交的(每一个词是个独立的维度而且是语义无关的,尽管不符合实际,但为了便于创建数学模型就作了这样的假设);排序
二、为了讨论方便就假设文档和查询短语由两个词构成,这样文档和查询短语就是二维平面上的向量;文档
三、词的量化采用TF-IDF算法计算而得(关于该算法的理论依据会单独写一篇进行讨论);数学
四、图中D表示文档向量,q一、q2表示查询向量,若是采用欧式距离q2比q1到D的距离更小从而类似度更高,实际上q1与D的类似度比q2的高,由于q2只包含一个词而q1包含两个词。lucene