0

ネット上で検索して検索した後、solr のクリック数の人気に対するオープンソースの解決策の可能性を見つけました (= 有償版の明快な仕事の検索は必要ありません)。

次の 2 つの回答では、問題を簡単な方法で、少し複雑な方法で解決しようとします...

しかし、最初にいくつかの前提条件があります。

Google のようなシナリオを想定します:
1. ユーザーがテキストフィールドにいくつかの用語を入力し、検索ボタンを押します
2. システム (solr と組み合わせたカスタム Web アプリ) が、クリック可能な結果を​​含む Web ページを生成します
3.ユーザーは結果の 1 つを選択し (詳細へのアクセスなど)、選択した結果の「人気度」を変更するようシステムに通知します。

4

3 に答える 3

1

とても簡単な方法。

solr schema.xml で「popularity」というフィールドを定義します。

<field name="popularity" type="long" indexed="true" stored="true"/>

ユーザーが ID 1234のドキュメントをクリックすると想定されるため、(= webapp) solr を呼び出して、URL を使用して ID 1234のドキュメントの人気フィールドを更新する必要があります。

http://mysolrappserver/solr/update?commit=true

と本文に投稿

<add>
  <doc>
    <field name="id">**1234**</field>
    <field name="popularity" update="inc">1</field>
  </doc>
</add>

そのため、webapp が solr に何かを照会するたびに (solr の「boost」フィールドをカスタムの「popularity」フィールドと組み合わせて/並べ替える)、人気順に並べられたリストを取得します。

于 2014-04-02T13:39:20.347 に答える
0

これは興味深いアプローチですが、いくつかの欠点があります。

  1. 全体的なアイテムのストレージは、検索のたびに劇的に増加します。
  2. 特定の項目の選択は 100% 正しく、誤って選択したり、簡単に選択したりしたわけではないと想定しています。このようにして、途中で間違った検索結果が得られる可能性があります。

カウンターをインクリメントするか、ユーザーがクリックしなかった他の結果に基づいて相対カウンターを維持することをお勧めします。

于 2014-08-11T15:54:34.963 に答える