問題タブ [dismax]
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.
solr - solr: 文字列フィールドは、qf パラメータを使用して部分一致結果を生成しません
「qf」を dismax クエリに追加すると、完全に一致しない限り結果が得られません。
次のように NGramFilterFactory を使用しています。
インデックスに Yengas.com がある場合、yengas.com を検索できますが、yengas は検索できません。ただし、「qf」をドロップすると、yengas を検索できます。
検索例:
dismax および通常のクエリで部分一致が失敗します。
何が欠けている可能性がありますか?
search - solr dismax を使用した単語の一部による検索
dismaxで単語の一部を検索するにはどうすればよいですか? たとえば、クエリが「wor」の場合、「wor d」「wor ld」「ad wor ds」などのフィールド値で結果を取得したい。出来ますか?
solr - フィルター クエリを解析して作成する Solr クエリ パーサーはありますか?
フィールドで指定されていないものはすべて一般的な検索用語として残して、フィルター クエリを解析して正しく適用できる Solr クエリ パーサーを探しています。
そう:
これにより、次のことが行われます。
- 「tags」フィールドに「sql」を含むレコードの FilterQuery クエリを作成する
- 「タイトル」フィールドに「mysql」を含むレコードの FilterQuery を作成します
- デフォルト フィールドに「recordset」を含むレコードの通常のクエリを作成する
そのようなクエリパーサーは存在しますか?
編集:クエリとして「*」を検索し、「qf」パラメーターを次のように実行すると、機能することがわかりました。
これを行うことの欠点は何ですか?スコアリングはすべて間違っていると思いますか?
solr - solr dismax クエリが空の結果セットを返すのはなぜですか?
Dismaxクエリパーサーを使用してsolr 4.5でインデックス付きデータからフリーテキスト検索結果を取得しようとしていますが、次のような単純なクエリでは結果が返されず、エラーもありません。
そして、これらのドキュメントはインデックスに存在します:
私のschema.xmlは次のとおりです。
およびsolrconfig.xmlで
何が間違っているのでしょうか?なぜ結果が出ないのですか?
solr - eDismax を使用した近接検索
solr を使用して検索エンジンを作成しました。ユーザーが「 college 」という単語を検索すると、「有名な」という単語が近接しているドキュメントのスコアが得られるようなクエリを作成したいと考えています(2 単語以内、つまり「有名な大学」または「大学は有名です」)。もっと高いべき。有名な単語が近接して存在しない場合、「大学」という単語のみに基づいてスコアを計算する必要があります。
私が欲しいのは、この「有名な大学」〜2 ^ 10 OR「有名な大学」〜1 ^ 10 OR「大学」のようなものです
eDismaxでこれを達成する方法は?
solr - SOLRのqfパラメータのmanu、sku、catとは何ですか?
dismax パーサーの solrconfig.xml を調べていたところ、sku、manu、cat などの値が多数見つかりました。これは何?
search - dismax または edismax を使用して SOLR でクエリをブーストするにはどうすればよいですか?
私はSOLRが初めてなので、ご容赦ください。そのため、世界中のさまざまな国にたくさんのホテルがあり、どこからでも検索できます。たとえば、東京にホテルがあり、このホテルをロンドンで検索したり、東京自体やニューヨークで検索したりすることもできます。
私が作成しようとしているクエリは、ホテルを検索し、現在の市場/国に基づいてホテルを返すだけでなく、さまざまな市場/国からの結果も返すことです。たとえば、私が英国にいる場合、市場は GB であり、GB に基づいて結果が返されます。GB は、JP (日本) などの他の市場を含めて結果の最上位に配置されますが、それらの結果は低く配置されます。
私がこれまでに行ったクエリは次のとおりです(これは機能しません):
簡単に実行できますがmarket:GB
、これは GB 市場のみを返します。
必要な結果を得るには、このクエリをどのように構成すればよいですか?
solr - dis-max-query に関連する minimum_shod_match
最近Solrから切り替えたばかりなので、私はelasticsearchの初心者です。現在、solrconfig から edismax クエリを変換して、elasticsearch で動作するようにしようとしています。
基本的に、一度に 2 つのフィールドで用語を検索したいので、次のクエリで終了しました。
これは、単一の用語でうまく機能します。複数の用語の場合、各用語が見つかる必要はありません。ただし、この機能を実装する方法が見つかりませんでした。これが、 bool queryによって提供されるminimum_should_matchパラメータの目的です。
3 つの用語があり、そのうちの少なくとも 2 つを見つけたいとします。試行錯誤を経て、次のようなものを含む多くのバリアントをチェックしました。
しかしminimum_should_match
、ここでは機能せず、and
演算子が原因で結果が見つかりません。or
結果を返すには1回のヒットで十分であるため、どちらでも機能しません。
誰かが私と組み合わせるdis_max
のを手伝ってくれますかminimum should match
?
これに関するドキュメントが見つからなかったので、elasticsearch でこれらの情報を自分で見つけることができるヒントをいただければ幸いです。
search - Apache solr を使用している人の名前で検索する
人の名前の検索を作成する必要があります。ここで素晴らしいコンテンツを既に見ましたが、別のものが必要です。
これが私の要件です。
音声検索を使用しようとしましたが、インデックスを作成する必要がある人の名前が英語以外の名前です。Apache Solr / Lucene によって実装された音声アルゴリズムは、ポルトガル語の単語 (私の文化) には有効ではないと思います。
その後、ngrams を使用して検索することにしました。うまくいくようですが、ユーザーが入力したものがSolrインデックスにどれだけ近いかを比較する必要があります。すべてのドキュメントに単語が存在する回数を使用するため、スコアを使用できませんでした。したがって、比較の結果として、どういうわけか数値 (たとえば、パーセンテージ) を与える必要があります。つまり、ユーザーが入力したものが、solr で持っている本名にどれだけ近いかを示す必要があります。
Ps: この結果をアプリケーションで使用して、ユーザーが入力したものを使用するか、Solr に存在するものを続行します。
サンプル:
Jhames Bond を使用すると、Ngrams を使用して 1 と 2 の両方が一致します。
PS: シナリオを明確にするために、英語の名前を使用しました。
答えを出す方法はありますか: ユーザーが入力したものは、使用スコアなしでインデックスに登録したものとどのくらい似ていますか? まあ言ってみれば: