大数据,数据量辣么多,要查询的话谁在前面谁在后面?数据又不能贿赂搜索框,再说Wuli es可是铁面无私、全心全意为人民服务的boy,所以面对这种情况,我们有一套狠复杂的算法,打分排序算法公式什么的,我就不说了,直接上中文:
先说搜索过滤的时候,boolean model
类似and这种逻辑操作符,先过滤出包含指定term的doc
query "hello world" --> 过滤 --> hello / world / hello & world
bool --> must/must not/should --> 过滤 --> 包含/不包含/可能包含
doc --> 不打分数 --> 正或反 true or false --> 为了减少后续要计算的doc的数量,提升性能
IF/IDF打分
打分算法:查询语句和文档间匹配程度,根据打分规则对结果排序 影响因素:文档内容匹配较多稀有查询关键词、文档含较少的term且term多是稀有的-高分 文档权重:索引时设置 域权重:field boost:查询的时候给域设置的 调整因子:文档中包含查询关键字个数;多、大 逆文档频率:Inerse document frequency :基于term,告诉打分公式一个词的稀有程度 频率:多少个文档出现了该词 打分公式提升稀有词文档的权重 长度归一化:length norm:基于域 由给定域中term的个数决定(索引文档时已计算出) 跨域的文本越长,权重越低 词频:基于term,term出现频率;越大分越高 查询归一化因子:query norm:基于查询语句=查询语句中每个查询词权重的平方和