【发布时间】:2012-11-20 14:23:17
【问题描述】:
什么是 solr 索引中的文档流行度..?
EDisMax 解析器使用 boost 参数。在 &boost=popularity 这样的示例中,我注意到一个查询。我不明白什么是 boost 以及 boost=popularity。在了解 boost 参数之前,我想知道什么是文档索引中的“流行度”。
【问题讨论】:
什么是 solr 索引中的文档流行度..?
EDisMax 解析器使用 boost 参数。在 &boost=popularity 这样的示例中,我注意到一个查询。我不明白什么是 boost 以及 boost=popularity。在了解 boost 参数之前,我想知道什么是文档索引中的“流行度”。
【问题讨论】:
popularity 只是用作示例的“某个字段”,而boost 是为edismax 请求处理程序定义的查询参数。提升意味着根据某个字段值(或某些函数的结果基于字段值)影响评分(每个搜索命中的相关性)。
请参阅https://cwiki.apache.org/confluence/display/solr/The+Extended+DisMax+Query+Parser 中的The boost Parameter 部分。
如果您想在自己的索引中实现 popularity 之类的东西,您必须:
popularity 的字段,其类型为 int 或 float 或 ExternalFileField(取决于您如何索引和应用它)。ExternalFileField(或将来通过docValues 部分更新)存储您从统计数据中获得的流行度值。boost=popularity(或在函数查询中使用popularity)在查询期间应用提升。更多关于人气提升的信息:
https://www.slideshare.net/lucenerevolution/potter-timothy-boosting-documents-in-solr
docValues 部分更新: https://issues.apache.org/jira/browse/SOLR-5944
外部文件字段: http://www.findwise.com/blog/externalfilefield-in-solr/
【讨论】:
Boosting 用于增加某些文档的分数。您可以使用索引时间提升或查询时间提升。对于索引时间提升,您可以将boost 属性和值设置为您索引的文档。对于查询时间提升,您可以通过设置提升值来提升字段,也可以使用预定义的函数查询。
有关提升检查的更多信息documents in Solr wiki。
boost=popularity 表示文档流行度在外部字段中计算(使用ExternalFileField),并使用流行度值来增加分数。可以使用查看次数或您想要的任何其他参数来计算文档的受欢迎程度。有关通过受欢迎程度提升文档的更多信息,您可以check this document。
【讨论】: