在上一篇文章中,我们大概了解了如何使用搜索语句对索引进行搜索,但是在搜索完成之后如何对找到的文章进行排序并返回的问题产生了疑惑,那么我们是如何去判断搜索出的文档和搜索语句的相关性的呢?现在,我们来解决如何对文档之间的相关性进行打分的问题。
要对文档之间的关系进行打分可不是一个容易的事情,我们先看一个例子:如何去判断人之间的关系。
首先,看一个人,往往会综合许多的要素,比如性格、信仰、兴趣爱好、衣着打扮、高矮胖瘦等。
其次,对于人与人之间的关系,不同的要素重要性不同,性格、信仰、爱好可能会重要一些,而个人的衣着打扮和高矮胖瘦等可能重要性要相对小一个层次,故而拥有相同或者相似的性格、信仰和兴趣爱好的人会更容易成为好朋友,不过衣着打扮和高矮胖瘦不同的人,也能够成为好朋友。
因此判断人与人之间的关系,首先要知道哪些因素对人与人之间的关系更重要,比如性格、信仰和兴趣爱好等。其次,是判断两个人的这些要素之间的关系。例如A性格开朗,B性格外向,A信仰佛教,B信仰上帝,A喜欢打篮球,B喜欢踢足球。我们可以看到,A和B两个人的性格都很积极,都喜欢运动,而且两个人的信仰也都是善良积极的,因此我们判断两个人之间的关系应该会很好。
可能大家会说上面这个例子中的关联要素可能有点抽象,那我们再看一个更加直观的例子:公司之间的关系。
首先,一个公司由很多人构成,比如总经理,经理,首席技术官,普通员工,保安,门卫等,这些人的重要性不同,总经理、经理和首席技术官可能更重要点,而普通员工、保安、门卫等可能不是那么重要。所以说如果两个公司的总经理以前是同学,经理是老乡,首席技术官曾是一起创业的伙伴,那么,我们会判断这两家公司的关系一定很好。
通过上面的两个例子,我们知道判断两者之间的关系需要多方面地考虑许多因素,并且不同的因素的权重不同。现在,我们再来看一下如何去判断文档之间的关系。
首先,一个文档有许多词组成,如search,lucene,full-text,this,a,what等。
其次