問題タブ [morelikethis]
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.
search - Solr 検索、数値一致、関連性
ユースケースから始めましょう。価格が 500 ドルの製品を探しているとします。価格が多少高くても低くても、必ずしも気にする必要はありませんが、その価格帯の製品には全体的な関連性スコアを高くしてもらいたいと考えています。
Solrでこれを行う方法はありますか? このサイトで見た関連性/MoreLikeThis ドキュメントには、特定の数値からの逸脱という概念がないようです。
関連する質問。これら 2 つのクエリを実現するために、solr 検索の重み付けを変更できるようにしたいと考えています。
「似たような価格のカメラを探す」と「似たような機能のカメラを探す」
このハンドラーに似たものを見ると、関連性を計算するために使用されるアルゴリズムは、制御ノブをプログラマーに公開しているようには見えません。たとえば、同様の価格のカメラの場合、関連性スコアを変更して、同じ価格帯のアイテムの関連性を高めながら、機能の重み付けを維持したいと考えています。同様の機能については、これが逆になります。IE は「同様の機能を備えたカメラを見つけますが、1 台が 40,000 ドルかかる場合、選択した価格の同様のカメラよりも関連性が低くなります」(より多くの機能が必要ですが、レンズ キャップにクロム スピナーが取り付けられているだけかもしれません)。
c# - Lucene インデックスに保存されている同様のドキュメントが既に存在するかどうかを検出する方法
データベース内の重複を除外する必要があります。問題は、重複が完全一致ではなく類似文書と見なされることです。この目的のためにFuzzyQuery
、次のように使用することにしました。
アイデアは、最小類似度を 0.8 に設定することでした (十分に高いと思います)。これにより、十分に類似していないドキュメントを除外して、類似したドキュメントのみが検出されます。
このコードをテストするために、既存のドキュメントが見つかるかどうかを確認することにしました。変数queryText
には、インデックスに格納されている値が割り当てられました。上記のコードは何も検出しませんでした。つまり、完全一致すら検出しませんでした。
インデックスは次のコードで作成されました:
以下の推奨事項に従いましたが、結果は次のとおりです。 TermQuery は結果を返しません。で構築されたクエリ
完全に一致するドキュメントと同様のコンテンツを持つ他のいくつかのドキュメントの最大スコアを持つ複数の結果を返します。
search - インデックスを常に更新するSolr
150,000 件のニュース記事を掲載するニュース サイトを運営しています。約 250 の新しい記事が、毎日 5 ~ 15 分間隔でデータベースに追加されます。Solr は何百万ものレコードに最適化されており、私の 150K は問題にならないことを理解しています。しかし、更新のたびにキャッシュが無効になるため、頻繁な更新が問題になるのではないかと心配しています。私の開発サーバーでは、ページのコールド ロードのロードに 5 ~ 7 秒かかります (すべてのページでいくつかの MLT クエリが実行されるため)。
インデックスをアーカイブ インデックスと最新インデックスの 2 つに分割すると役に立ちますか。アーカイブ インデックスは 1 日 1 回更新されます。
常に更新されるインデックスのためにインストールを最適化する方法を誰か提案できますか?
ありがとう
zend-framework - ゼンド・ルセン
検索エンジンに Zend_Search_Lucene を使用しています。悲しいことに、インデックス内の同様のドキュメントを見つけることができる MorelikeThis メソッドの実装がありません。
この関数の適切な Zend ポートに出くわした人はいますか?
drupal モジュールを見つけましたが、深刻なハッキングなしに Zend で使用できるかどうかはわかりません。
search - 完全なドキュメントを検索するようにluceneに指示するにはどうすればよいですか?
luceneを実行していて、Solrを介してクエリを実行しています。インデックスが作成され、多くの単語を含むドキュメントがあります。次に、提供するドキュメントのインデックスを検索する必要があることをluceneに伝える方法を教えてください。クエリの構文はどうなりますか?
solr - 追加する前に同様のドキュメントを検索する
- ユーザーは、日付、時刻、タイトル、および説明をマルチフィールドフォーム(ドキュメント)に入力します。
- ドキュメントを保存する前に、同様のドキュメントがSolrに保存されているかどうかを確認します
- ユーザーは、このドキュメントを保存するかどうかを選択できます。
Solrに「類似したドキュメントを見つける」を実装する方法は?
Luceneで:FuzzyLikeThisQuery
、MoreLikeThis
?
しかし、Solrでは?
PS私はdjango-hastackを使用しています
solr - SOLR MoreLikeThisでモデルと一致に異なるフィールドを使用することは可能ですか?
AとBの2つのフィールドを持つドキュメントがあるとします。
SOLRのMoreLikeThisを使用したいのですが、ひねりを加えて、AフィールドがモデルドキュメントのBフィールドに似ているドキュメントをブーストすることに最も興味があります。(つまり、モデルBフィールドからMLTの「興味深い用語」を抽出しますが、Aフィールドに基づいてMLT結果のみを収集します。)
mlt.flフィールドまたはmlt.qfブーストを使用して、単一のクエリでこの効果を実現する方法がわかりません。(mlt.flは、「興味深い用語」の検出とそれらの用語への一致の両方に使用されるフィールドを指定しているようです。)いくつかのオプションがありませんか?
または、「興味深い用語」を自分で抽出して、「field:term」の詳細を交換する必要がありますか?
(これと同じように他のアイデアも高く評価されています。)
solr - Solr で MoreLikeThis からの出力を制限する
MoreLikeThis を使用して、類似したすべてのドキュメントを取得しようとしていますが、特定の contenttype を持つドキュメントは取得しません。
したがって、最初のクエリでは、「More Like This」を取得したい 1 つのドキュメントを見つける必要があり、2 番目のクエリでは、同様のドキュメントが pdf のもの (-contenttype:pdf) にならないように制限する必要があります。
これが可能かどうか誰にもわかりますか?
ありがとう
solr - ハンドラーの解決とエスケープに関する Solr の質問
Solr の使用に関していくつか質問があります。
- 特定のリクエストは、異なるパス (ハンドラー?) に送信できます。たとえば、MoreLikeThis コンポーネントを /select または /mlt に送信できます。
Solr wiki で次の 2 つのリンクを見つけました。
この設定の背後にある理由は何ですか? MoreLikeThis リクエストを /mlt に送信することにした場合、/select 特定の呼び出しを利用できないということですか? そうでない場合、スペルチェックからクラスタリングへのすべての要求を処理するように /select パスを構成できますか?
- Lucene で二重文字の特殊文字列 (&&、||) をどのようにエスケープしますか?
http://lucene.apache.org/java/2_9_1/queryparsersyntax.html#Escaping+Special+Characters
最初の文字のみ (\&&) をエスケープするか、または両方をエスケープするか? そして、いつそれらをエスケープする必要がありますか? Solr パッケージで提供されているサンプル サーバーで実行したいくつかのテストは、決定的なものではありませんでした。
http://localhost:8983/solr/select/?q=manu:%22apple%20%26%26%22%20AND%20manu:%22computer%22
それでも結果を返しますが、
solr - Sunspot / Solr / Lucene:同様の記事を探す
sunspot / solr / lucene(またはその他の検索エンジン)によって索引付けされた記事のリストがあるとします。
特定の記事と同様の記事を見つけるためにどのように使用できますか?
これは、http://www.wordsfinder.com/api_Keyword_Extractor.php、またはhttp://developer.yahoo.com/yql/consoleからのtermextract 、またはhttp://www.alchemyapiなどの再開ツールを使用して実行する必要があり ます。 .com / api / demo.html?