1. 相关性
相关性是一个查询响应满足用户搜索信息的一个度(程度).
查询响应的相关性主要依赖于上下文的查询.单个搜索应用程序可以通过用户的不同需求和期望被用来在不同的上下文。例如,气候数据的搜索引擎可能由长期研究气候的大学研究人员使用,也可能被关心春天的最后一个霜冻的日期的农民使用,也可能被关心降雨模式和洪水的频率的土木工程师使用,也可以是一个大学生计划到一个地区,想知道这个地区的气候.因为这些用户的动机而变化,查询响应的相关性也随之发生改变.
如何应综合查询响应呢?像一般的相关性,对这个问题的答案取决于搜索的范围内.在某些情况下,在查询响应中找到一个指定文档的成本比较高.比如,一个合法的e-discovery搜索响应subpoena,搜索其他时很慢,如搜索蛋糕食谱网站上的几十个或几百个蛋糕食谱.配置Solr时,你应该综合权衡对其他因素,如及时性和易于使用的.
相关性的两个重要概念:
- Precision(精确度):返回结果中,文档的相关性的百分比.
- Recall:就是返回的相关结果从所有的相关结果所占的百分比,获得完美的召回很简单:只是对每一个查询返回集合中的每一个文档.
回到上面的例子,我们需要100%的召回(recall)关联subpoena的所有的文档.这对于e-discovery搜索应用是很重要的,但是对于蛋糕搜索应用提供准确度就不是那么重要了.尽管如此,在一些例子中,在随意的上下文环境中返回太多的结果会压垮用户的感知.在某些情况下,返回有相关性较高的可能性较少的结果可能是最好的办法。
使用precision和recall的概念,对于集合中的文档它可能会在用户和查询之间量化相关度.一个完美的系统,对于每一个用户和查询将会拥有100%的准确度和100%的召回(recall).换句话说,它将会检索所有的相关文档,没有其他的东西.在实际的terms中,讨论真正系统中的准确度和召回时,在一定数量的结果中专注准确度和召回是很常见的.最常见和有用的结果数时10条.
通过分面,查询过滤,其他搜索组件,可以灵活配置solr应用来调整搜索顺序来返回对用户来说最相关的结果.也就是说,solr可以配置准确度和召回(recall)的一个平衡以满足特定用户群体的需要.
Solr应用程序的配置应该考虑到:
- 应用程序的各种用户的需求(除了严格信息需求外,还可以包括易用性和反应速度,)
- 在各种环境中对于用户有意义的类别.例如,日期,产品类别,或地区
- 文档任何内在关联性.例如,它可能是有意义的,以确保在正式产品说明或回答问题总是返回接近的搜索结果的顶部.
- 文档的年龄是否时重要标志.
考虑所有的因素,它在一个Solr的部署规划阶段往往有助于勾画出响应的类型,您认为搜索应用程序应返回的示例查询.一旦这个应用起来,并运行.你可以使用一系列的检测方法.
如关注分组,内部测试.
关于更多的相关度信息,参考Grant Ingersoll的技术文档Debugging Search Application Relevance Issues.