問題タブ [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.
join - サブドキュメントに基づく Solr スコアリング (親ブロック結合)
私は次のような構造を持っています...ストア内の製品としましょう。製品には評価があります。さらに、ユーザーは製品を (自分で) 評価することができます。300,000 個の製品と 50,000 個のユーザー評価 (各製品に対して) としましょう
質問 1: サブドキュメントは正しい選択ですか? SolrJですべてを追加していますが、それを行うための他の適切な方法は見つかりませんでした。
例として、次のコードをコピーしてコレクションに貼り付けることができます。
質問 2 (重要なもの): このインデックスにクエリを実行して、最初にユーザー評価 (存在する場合)、次に製品評価 (そして他のフィールドなど) によってドキュメントがスコア付けされるようにする方法作成日、ビュー、購入、...)? それは可能ですか?
私はそのようなことを調べていました:
これにより、ドキュメントが次の順序 (id) で返されます: 3、1、2
しかし、代わりに以下を返します:
solr - 完全一致を含むテキストに対する SOLR 完全一致ブースト
より良いタイトルが見つかりませんでした。可能であれば、最終的な提案に基づいて後で変更したいと考えています。
私の問題:
音楽アーティストのデータベースを取得しました。これらは次のようになります: 「dr. dre feat. akon」、「eminem & dr. dre」、「dr. dre feat. ll cool j」、「dr. dre」、「dr. dre feat. eminem & skylar gray」 . id と name の 2 つのフィールドしかありません。
デフォルトのスキーマ solr コアで、「q=dr. dre」というクエリを実行すると、結果は問題ありませんが、完全ではありません。次のようになります。
- 博士。ドレ feat. エイコン
- エミネム & Dr. ドレ
- 博士。ドレ feat. クールなj
- 博士。ドレ
- ...
彼らはまったく同じスコアを得たことに注意してください。
私が望むのは、次のように、最初の結果として「dr. dre」を取得し、次に他のすべての結果を取得することです。
- 博士。dre <<-- 博士。ドレが最初
- エミネム & Dr. ドレ
- 博士。ドレ feat. クールなj
- 博士。ドレ feat. エイコン
- ...
どうすればこれを達成できますか? (フィルター、トークナイザー、フィールドのコピーなどは重要ではありません。他のフォーラムで提案されているように、solr内のコードを変更することはできません)
ありがとう。
solr - dismaxで用語をダウンブーストする方法
全て:
私がやりたいことは、内容フィールドに「季節」が含まれるドキュメントを高く評価し、タイトル フィールドに「季節」が含まれるドキュメントを厳しく罰し、新しく作成されたドキュメントを後押しすることです。
Dismax(またはeDismax)でそれを行う方法を知りたいですか?ありがとう
search - 結果がSOLRでブーストされたかどうかを確認する方法はありますか?
ユーザーが自分の好みを設定できる検索システムを持っているので、これらの好みに従ってSOLR検索の結果をブーストします。結果がブーストされたときに視覚的なフィードバックをユーザーに提供したいのですが、これを行うには、特定の結果がブーストされたかどうかを確認する方法を見つける必要があります。
これまでのところ、スコア値を使用することを考えていました。スコアが特定のしきい値を超えている場合、スコアがブーストされていることがわかりますが、スコアはクエリごとにかなり変化するように見えるため、設定方法がわかりませんそのようなしきい値。
結果でブースト前のスコアに何らかの形でアクセスできた場合、これを最終的なブースト後のスコアと比較して、結果がブーストされたことを知ることができますが、ブースト前のスコアは利用できないと思います (お願いします)間違っていたら訂正してください)。
これを達成する方法を他に考えている人はいますか?
java - ルセン ブースティングは lengthNorm の類似性によってどのように影響を受けますか
以下を含む 2 つのドキュメントがあります。
doc_1 :one two three four five Bingo
doc_2 :Bingo one two three four five
それぞれ 2 つのフィールドでインデックスを作成しています。1 つのフィールドには最初の 5 つの用語が含まれ、2 つ目のフィールドには最後の用語が含まれています。
ブースティングの結果をよりよく確認するために、次の類似性を実装しました。
ブーストを適用せずにBingo
、同じスコアを持つ両方のドキュメントの結果を検索します (予想どおり、意図したとおり)。ただし、フィールド ( ) の 1 つにブーストを適用すると、 doc_2のフィールドを含むフィールドがブーストされstart_field.setBoost(5)
ても、両方のスコアは同じままです。Bingo
を削除するとcustomSimilarity
、ブーストは期待どおりに機能します。
boosting
が停止する理由lengthNorm
と、指定された上書きされた類似度でブースティングを機能させるにはどうすればよいですか?
java - Solrの正確な単語の結果が最初に来ます
Solr-5.0.0 では、1 つのproduct_name
フィールドがあります。単語または複数の単語を検索すると、その単語を含む製品名が表示されます。完全一致が最初に来るようにするにはどうすればよいですか。
私のSchema.xmlは以下の通りです:
また、私のフィールド定義も以下に示します。
インデックス時またはクエリ時にブーストが必要ですか? それとも何か?
solr - Solrをあまりブーストしない正確な単語
指定されたリンクの参照として
一例を試してみました。以下に示す私のschema.xml構成。
正確な単語検索はこれでうまく機能します。
しかし、完全一致ブーストを使用したあいまい検索では、期待した結果が得られません。これは私のクエリです
ヘルプはありますか?
solr - 特定の単語を含む Solr ネガティブ ブースト クエリの結果
item_name
Solr 5.0.0 でインデックス付けされたフィールドがあります。特定の単語を含むクエリ結果に負のブーストを与えるにはどうすればよいですか?
たとえば、次のitem_name
ようなものがあるとします。
検索するとlaptop bags
、次のような結果が返されます。
item_name
次のような単語を含むにマイナスまたは低いブーストを与えるにはどうすればよいですか:
あり、なし、...
item_name
これらの単語を含む が結果のトップにならないようにするためですか?
stopwords
NB:このコンテキストで何か関係がありますか?.