問題タブ [solr-boost]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
drupal - Drupal からリクエストを送信するときに Solr ハンドラを使用する方法
私は Solr 4.10.2 と Drupal 7.X を使用しています。Apache Solr Module Framework を動作させ、Drupal から Solr にリクエストを送信しています。現在、検索を実行すると、Drupal がクエリを作成して Solr に送信します。Solr はクエリを実行するだけで、SolrConfig.xml で構成できる内部ハンドラーを使用せずに結果を返します。
検索された用語を Drupal から (クエリを作成せずに) 送信し、Solr が SolrConfig.xml で宣言された内部ハンドラを使用してリクエストを処理し、クエリを作成してからデータを返す方法があるかどうかを知りたいですか?
この理由は、一部のフィールドの「重み」を変更することにより、検索を実行したときに一部の結果を向上させることに取り組んできたためです (完全一致を最初に検索し、あいまい検索結果を後で検索したい)。
バックオフィスから「バイアス」機能を使用して一部のフィールドをブーストできることはわかっていますが、これは私たちが達成しようとしているものにはあまりにも限定的です.
また、 hook_apachesolr_modify_query()を使用して Drupal から送信されたクエリをコード側から直接変更できることもわかっていますが、変更するコードをできるだけ少なくし、必要な結果を返すように既に構成した SolrConfig.xml /handlers を使用することを好みます。
elasticsearch - 人気度でトレンドアイテムを検出する方法は?
Elasticsearchで検索アプリを作りました。アイテムには名前とフォロワー数があります。フォロワー数を使用してelasticsearchの結果を高めます。
例: 2 つのアイテムがあるとします。item_1 = [name = "abc def", follower = 1000] and item_2 = [name = "abc", follower = 10].
そのため、ユーザーが「abc」を検索すると、item_2 が完全に一致していても、item_1 が最も可能性の高い結果として表示されます。これは私にとってはうまくいきます。しかし、これに新しい機能を追加したいと思います。
人気が出ているアイテムを検出してスコアを上げられるようにしたいです。
それで、フォロワー数を毎日1週間または1か月保存すると思います。お気に入り;
したがって、アイテム 1、2、3、4 の毎日のフォロワー数がこのように増加すると、アイテム 2 のフォロワー数の増加を検出し、アイテム 1 よりもブーストできるはずです。 、アイテム 2 のフォロワーは毎日増えています。ただし、項目 3 の増加率は非常に小さいため、項目 3 を項目 4 よりもブーストする必要はありません。
要するに、人気の高まりを検出できるようにしたいのですが、それは増加率に基づいている必要があります。
それで、これを行うための提案はありますか。または、この問題を解決するのに役立つ論文を参照できますか?
solr-boost - デフォルトのクエリを使用しながらsolrnetでブースティングを使用するには?
特定のフィールドではなく、デフォルトの検索フィールドでクエリを実行するために SolrNet を使用しています。その場合、特定のフィールドで Boost を使用するにはどうすればよいですか? 以下はコードスニペットです。
リスト フィルター = BuildQuerySingleLine(arrParams);
search - クエリ フィルター ブーストによる Solr 結果の関連性
プロジェクトにサイト検索を実装しました。Nutch は、サイトのコンテンツのクロールに使用されます。現在、すべてのレコードがクロールされ、SOLR でインデックスが作成されており、検索機能はすべてのキーワード検索で機能します。私たちが直面している問題は、検索結果の関連性です。フィールドでブーストを実行して結果を表示することはできません。
たとえば、フィールドのタイトル、説明、キーワード、URL、およびコンテンツをインデックス化しています。任意のキーワード「XYZ」を検索すると、このキーワードを含むすべてのレコードが用語の頻度に基づいて表示されます。ただし、クエリフィルターでフィールドタイトルをブーストすると、a. タイトル^5 – タイトルにキーワードを含む検索結果が表示されますが、コンテンツに「XYZ」を含むレコードが選択されていません。b. Title^5 content^1.1 – このシナリオでは、検索結果はタイトルの関連性に基づいて表示されず、既定の用語頻度の動作が記録されます。
sorting - 特定のフィールドへのブーストを使用したsolrでのランダムソート
ドキュメントをランダムに並べ替えたいが、特定のフィールドを優先したい。RandomSortFieldフィールドタイプを使用して動的ランダムフィールドを試しました
しかし、ソートはスコアリングを無視し、私の状態ではブースト係数は無関係になります.
複数条件でのソートも機能しません。sort=random_82423 asc,rating desc よろしくお願いします。
solr - 検索語とドキュメントの種類に基づいて SOLR 結果スコアをブースト
SOLR 検索の関連性について、SME からのルールがあります。こんなふうになります。
"XX"、"YY"、または "ZZ" という単語がユーザーの検索語句に含まれている場合、結果の document_type "MMMM" を大幅にブーストします。(ただし、その場合のみ、ドキュメント自体に重みを付けることができないと思います。)
指定された用語「XX」などの存在をチェックし、document_type「MMMM」を大幅にブーストする事前構築済みクエリにそれらをプラグインする「クエリプリプロセッサ」を構築することを想像できます。
それは私には少し不格好に感じます。これをコードで実行し、2 つのルールの用語が検索に含まれる「結合」状況を処理することは、私が維持したいことのようには思えません。
これを行うためにSOLRを活用する方法があるかどうか疑問に思っていますか? 最初に頭に浮かぶのは、データを前処理してSOLRに入れるときに、特定の検索用語「XX」などを任意のdocument_type「MMMM」に入れることです。
それらをドキュメントのテキストに放り込むだけでは、おそらく重みがそれほど変わることはありません-特にその用語がそのdocument_typeの一部ではない他のドキュメントにある場合-そして、それはすべてのドキュメントの「important_abbreviations」フィールドとすべてのクエリにその一般的なフィールドのブーストを含める「標準的な」方法。クエリを除いて、ドキュメント内の特定のフィールドをブーストする方法を見た覚えがないからです。
他の誰かがこの問題を解決したかどうか疑問に思っています。もしそうなら、どのように - これらは両方とも私には少し不格好に感じるからです。