1

solr 索引中的文档流行度是什么?

EDisMax 解析器使用 boost 参数。在这样的示例&boost=popularity中,我注意到一个查询。我无法理解boostboost=popularity是什么。在了解 boost 参数之前,我想知道文档索引中的“流行度”是什么。

4

2 回答 2

3

popularity只是用作示例的“某些字段”,而是为请求处理程序boost定义的查询参数。edismax提升意味着根据某个字段值(或基于字段值的某些函数的结果)影响评分(每个搜索命中的相关性)。

请参阅https://cwiki.apache.org/confluence/display/solr/The+Extended+DisMax+Query+ParserThe boost Parameter中的部分。

如果你想popularity在你自己的索引中实现类似的东西,你必须:

  1. 将一个字段添加到您的架构popularity中,使用 type intor floator调用ExternalFileField(取决于您如何索引和应用它)。
  2. 收集搜索结果的统计数据并存储与文档 ID 相关的数据(例如,通过评估访问日志)
  3. 在索引期间或通过ExternalFileField(或将来通过docValues部分更新)存储您从统计数据中获得的流行度值。
  4. 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/

于 2016-07-11T17:36:27.090 回答
1

Boosting用于增加某些文档的分数。您可以使用索引时间提升或查询时间提升。对于索引时间提升,您可以boost为您索引的文档设置属性和值。对于查询时间提升,您可以通过设置提升值来提升字段,也可以使用预定义的函数查询。

有关在 Solr wiki 中提升检查文档的更多信息。

boost=popularity表示文档的流行度是在外部字段中计算的(使用ExternalFileField),并用于通过使用流行度值来增加分数。可以使用查看次数或您想要的任何其他参数来计算文档的受欢迎程度。有关通过受欢迎程度提升文档的更多信息,您可以查看此文档

于 2012-12-03T08:14:18.537 回答