Solr实战之(二)Solr基础理论

2.1 什么是文档?
Solr是一个文档存储与检索引擎,提交给Solr处理的每一份数据都是一个文档(一片新闻报道,一份简历,社交用户信息);每个文档包含一个或多个字段,每个字段被赋予具体的字段类型。Solr查询返回的主要搜索结果是由一个或多个字段组成的文档集。


2.2 基本搜索问题
背景:传统SQL数据库实现查询时,如果要求所有词都匹配到,会导致一些相关的图书未被找到;如果要求一个词匹配到就可以会导致其他过多的无光图书被找到;且数量越来越大时,查询执行花销会越来越大
解决:以Solr为代表的搜索引擎会对内容和查询进行文本分析,确定文本相似的词,理解并匹配同义词,每个搜索结果的得分是基于它与查询词的匹配程度来计算的,以确保最佳结果排在前面;Solr之所以能完成以上工作,是因为使用了索引将内容映射之文档的方式(传统数据库模型是将文档映射到内容)。倒排索引是搜索引擎运作的核心。


2.3 倒排索引
这里写图片描述
这里写图片描述
此处需注意:
(1)倒排索引中的所有词项对应一个或多个文档
(2)倒排索引中的词项根据字典顺序升序排列


2.4 词项,短语与布尔逻辑
(1)必备词项:“+a +b”要求词项a和b都被匹配到
(2)可选词项:a b或者是a OR b,Solr默认查询词之间是OR运算,要求词项至少匹配到一个
(3)排除词项:顾名思义,要求词项不出现在匹配到文档中,a b –c或者a b NOT c(在匹配a,b的查询文
档中删除包含c的文档)
(4)短语:Solr还支持短语搜索,上面的a,b都可替代成短语
(5)组合表达式:使用布尔逻辑对词项,短语和其它查询表达式进行组合构造


2.5 Solr如何根据倒排索引找到文档集
例如有以下词项
这里写图片描述
如果查询是hello world(默认OR运算),则查询结果是2个查询词项文档编号的并集,返回文档24578;
如果查询是hello AND world,则查询结果是2个查询词项文档编号的交集,返回文档5和8;


2.6 模糊匹配
Solr的模糊匹配包括通配符匹配,区间匹配,编辑距离搜索和邻近搜索。
(1) 通配符匹配:Solr最常见的模糊匹配形式之一,例如offi*能匹配office,officer等;off*r能匹配offer和offcer;off?r能匹配offer,但不匹配offcer;原因是因为星号匹配查询词中0或多个字符,而问号只匹配单个字符。(不适用于短语搜索,只适用于单个查询词);
(2) 区间搜索:适用于在一个区间搜索特定文档子集;
(3) 编辑距离搜索:灵活处理拼写错误,提供了字符变体的处理手段,可以有效处理80%以上的人为拼写错误。Solr使用波浪符号表示模糊编辑距离搜索;如administrator~表示查询匹配到与原始词项相距2个编辑距离(定义为字符的一次插入,删除,替换或位置互换)的其他词项。
(4) 邻近搜索:“hello world”~1表示hello和world之间最多可以相隔一个词;


2.7 相关度
Solr出色地实现了搜索结果排序中最佳匹配的文档位于搜索结果列表顶端,这是它的开箱即用功能之一。它会计算每个文档的相关度得分,并从最高分到最低分对搜索结果进行排序。


2.8 查准率与查全率
(1)查准率:正确匹配的文档数量/返回的文档数量
(2)查全率:正确匹配的文档数量/(正确匹配的文档数+错误匹配的文档数)
区别:如果返回的结果是正确的,则查准率高;如果正确的结果都被返回来了,则查全率高;查全率不关心返回的结果是否都是正确的,而查准率不关心正确的结果是否都被返回来了。最大限度提升查准率与查全率是绝大多数搜索相关度优化的最终目标。在法律方面的搜索中,查全率的重要性更高,因为如果遗漏了文档,就可能导致一定的法律后果。


2.9 分布式搜索
问题:同时发出过多的查询请求,或者需要在单台服务器上处理太多的搜索数据,这些都会导致搜索服务器超载;
解决方法:将内容拆分到两个单独的Solr索引中,每一个索引包含单独的一部分数据,每次搜索运行时,查询会被同时发送到两台服务器上,分别进行处理后汇总在一起再返回给搜索引擎;Solr的分布式搜索功能开箱即用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值