1

非常に具体的な順序で Solr のアイテムの長いリストを作成したいと考えています。Solrファセットの経験はありません.範囲内でさまざまなアイテムを少しブーストできる日付範囲で結果をグループ化する良い方法ですか?

注文の原則

  1. すべての項目は一般的に時系列順に並べる必要があります
  2. この順序は、特定の範囲ごとに厳密にする必要があります
  3. その範囲内のアイテムはもう少し優先されるかもしれません
  4. この範囲内のアイテムは非常に高い優先度を持つ可能性があります
  5. 完全なリストでは、一部のアイテムが範囲外であり、上部に固執する場合があります

構成例

したがって、アイテムのテーブルがある場合、次のようになります。

  1. 粘着性のあるアイテムは 100% 上に表示されます
  2. イベントはブログより優先度が高い
  3. 特集は常に範囲内でトップにある
  4. 範囲は 1 週間 (7 日間) に設定されます

これは次のようになります (例 1 )。

sticky   | 2012-11-01
blog 2   | 2012-12-02
blog 1   | 2012-12-01

または (例 2、破線は単に週の境界を示すためのものです):

blog 5   | 2012-11-26
---------------------
featured | 2012-11-19   <<< featured are at the top in week 19-25 Nov
blog 4   | 2012-11-23
blog 3   | 2012-11-22
blog 2   | 2012-11-21
blog 1   | 2012-11-19
---------------------
featured | 2012-11-12

または (例 3 ):

event    | 2012-11-28   <<< events have a bit more prio in week 26 Nov - 2 Dec
blog 5   | 2012-11-29
blog 5   | 2012-11-28
blog 5   | 2012-11-26
---------------------
event    | 2012-11-20   <<< events have a bit more prio in week 19-25 Nov
blog 4   | 2012-11-23
blog 3   | 2012-11-22
event    | 2012-11-19   <<< events have a bit more prio in week 19-25 Nov
blog 2   | 2012-11-21
blog 1   | 2012-11-19
---------------------
blog     | 2012-11-18

(明確にするために、イベントの優先度の量(1日または2日またはx%は微調整のためのものであり、現時点では私の問題の一部ではありません)

質問

ここで質問です。フィールドごとまたはフィールド値ごとに、アイテムを特定の量または高い値でブーストして、それを一番上に押し上げることができることを知っています。ただし、これを特定の範囲 (例では 7 日間) に制限する必要があります。イベントと同じように、注目のイベントは 1 週間の範囲から外れることはありません。

ファセットについて聞いたことがありますが、これで問題が解決するかどうかはわかりません。私はsolrの素人なので、これを達成できるかどうかを判断するのは困難です。私はsolr wikiを見てきましたが、すべての新しい用語は、このアイデアに対する私の検索を少し混乱させます.

「ページネーション」を日付範囲として使用することでこれを解決できます (つまり、[日付] から [日付] までを検索します)。そのため、自分で「ファセット」を作成します。それは簡単ですか?ご覧のとおり、ファセットと複雑な solr クエリについてはわかりません :)

4

1 に答える 1

1

できることの 1 つは、グループ化機能を使用することです。年の週 (GregorianCalendar WEEK_OF_YEAR) を新しいインデックス フィールドに格納し、これによって結果をグループ化します。グループ内には、定義した通常の関連性計算があります。

例のリンクは次のとおりです: http://wiki.apache.org/solr/FieldCollapsing

于 2012-12-02T15:04:10.803 に答える