Sitecore lucene +查询计算日期字段的提升

时间:2017-09-21 07:38:21

标签: lucene sitecore solr-boost

我们正在使用Lucene搜索我们的一个项目。 该网站发展迅速,需要改进搜索。 一个关键是混合新近度和相关性。

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

现在,用户没有发现这些结果非常有用,因为他们看到顶部旧日期的文章。虽然内容是相关的,但它不是最新的。

我们需要提升搜索结果以包含已发布/更新的日期。 我们有一个计算列(publishedupdateddate),如何使用查询时间提升来提升搜索结果?

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

请告知

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

您可以使用标准的sitecore搜索API创建日期评分表单。通过在不同的日期范围内添加几个OR条件,即

AND(Title = searchTerm OR author = searchTerm)AND(     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天以上的文章将被完全排除,因为外部AND条件要求这些日期条件中的至少一个必须匹配,将其翻转为OR意味着我们只是在事物匹配时添加相关性,而不是在他们没有。