Sitecore lucene+;基于计算日期字段的查询增强

Sitecore lucene+;基于计算日期字段的查询增强,lucene,sitecore,solr-boost,Lucene,Sitecore,Solr Boost,我们正在使用Lucene搜索我们的一个项目。 该网站发展迅速,需要改进搜索。 一个关键的问题是将最近性和相关性结合起来 目前,搜索是在某些指定字段(如页面标题、内容等)中用户输入的关键术语上进行的,并返回得分最高的结果 目前,用户并不认为这些结果非常有用,因为他们在顶部看到的是来自旧日期的文章。虽然内容是相关的,但不是最近的 我们需要提高搜索结果,以包括发布/更新日期。 我们为它提供了一个计算列(publishedDupDateDate),它如何使用查询时间提升来提升搜索结果 如果不是查询时间,

我们正在使用Lucene搜索我们的一个项目。 该网站发展迅速,需要改进搜索。 一个关键的问题是将最近性和相关性结合起来

目前,搜索是在某些指定字段(如页面标题、内容等)中用户输入的关键术语上进行的,并返回得分最高的结果

目前,用户并不认为这些结果非常有用,因为他们在顶部看到的是来自旧日期的文章。虽然内容是相关的,但不是最近的

我们需要提高搜索结果,以包括发布/更新日期。 我们为它提供了一个计算列(publishedDupDateDate),它如何使用查询时间提升来提升搜索结果

如果不是查询时间,我们是否有其他方法在计算项目分数时包含日期


请告知

通常会创建计算字段,以便我们向索引中添加其他数据。只有当您使用它们简化查询时,它们才能缩短查询时间。如果您想更快地给出结果,那么您应该尝试使用SOLR或一些缓存,但当我们不知道您的数据集有多大以及查询有多复杂时,很难选择正确的路径

您可以使用标准的sitecore搜索api创建一种日期评分形式。通过在不同的日期段上分别添加几个或多个条件,即

和(Title=searchTerm或author=searchTerm)和( publishDate>dateTime.Now.AddDays(-7) 或 publishDate>dateTime.Now.AddDays(-30) 或 publishDate>dateTime.Now.AddDays(-90) 或 publishDate>dateTime.Now.AddDays(-180) 或 publishDate>dateTime.Now.AddDays(-365) )

在上面的例子中,3天的文章将从匹配所有5个日期条件中获得5倍的相关性。9个月前的文章在<-365条件下只能得分一次。一篇超过365天的文章将被完全排除在外,因为外部条件和条件要求这些日期条件中至少有一个必须匹配,将其转换为OR意味着,当事情确实匹配时,我们只是添加相关性,而不是当它们不匹配时,我们是一个硬过滤器