2017-09-21 12 views
2

私たちのプロジェクトの1つにLucene検索を使用しています。 サイトは急速に成長しており、検索の改善が必要です。 重要なことの1つは、最新性と関連性を混在させることです。Sitecore lucene +計算された日付フィールドでのクエリーブースト

現在、指定されたフィールド(ページタイトル、コンテンツなど)の一部にユーザが入力したキーワードが検索され、最高得点の結果が返されます。

今では、ユーザーは、古い日付の記事が上に表示されているので、これらの結果が非常に有用であるとは見当たりません。内容は関連性がありますが、最近ではありません。

公開日/更新日を含む検索結果を増やす必要があります。 計算された列(publishedupdateddate)がありますが、クエリ時間の増強を使用して検索結果を向上させるためにどのように使用できますか?

時間を照会されていない場合、我々は項目のスコアを計算しながら、日付を含むように、他の方法を持っていない...

答えて

0

計算フィールドは、一般的に私たちが追加してみましょうするために作成されているアドバイスしてください索引への追加データ。クエリーの時間を短縮するには、クエリーを簡素化する必要があります。結果をより速くしたい場合は、SOLRまたは一部のキャッシュを使用するようにしてください。しかし、そこにデータがどれくらいあるか、クエリの複雑さがわからない場合は正しい方法を選択するのは難しいです。

0

標準のサイトコア検索APIを使用するだけで、日付スコアのフォームを作成できます。異なる日付バンドにそれぞれ複数のOR条件を追加することにより

をIEと(タイトル= SEARCHTERM OR作者= SEARCHTERM)AND( publishDate> dateTime.Now.AddDays(-7) OR publishDate> dateTime.Now.AddDays( -30) OR publishDate> dateTime.Now.AddDays(-90) OR publishDate> dateTime.Now.AddDays(-180) OR publishDate> dateTime.Now.AddDays(-365) )

上記の例では、記事3日前に5つの関連性を5つの日付共同その他。 9ヶ月前の記事は< -365の状態から1回だけスコアをつけます。外部条件では、これらの日付条件の少なくとも1つが一致しなければならないため、365日以上の記事は完全に除外されます。OR条件を反転すると、一致したときに関連性を追加するだけでなく、彼らはしません。

関連する問題