問題タブ [edismax]
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 パラメータを使用して複数のフィールドをクエリしています。しかし、結果を出したフィールドをどのように取得できるのか疑問に思っています。
例 (実際の例ではありません):
フィールド値:
その結果、タグ/コンテンツにタブレットと PC が含まれているため、両方のドキュメントが返されます。doc2 にはタグに両方のヒットがあり、doc1 にはタグに 1 つのヒットとコンテンツに 1 つのヒットしかないことを知ることは可能ですか? Debugquery は、これに関する情報を提供していないようです。
qfブーストを使用して検索フィールドの重要性を高めることができることを知っています.
solr - 同じ結果で「すべての一致」または「一部の一致」をもたらす Solr クエリを使用することは可能ですか?
例えば。これらの行を Solr に保存しています。
「ボストンUSA」で検索してみます。その場合、私の検索はすべての単語に一致するため、単一の結果を返したいと思います。これは、「AND」動作または 100% 値の「mm」パラメータのようなものです。
しかし、「Texas USA」で検索すると、すべての単語に一致するわけではないため、3 つの結果が返されますが、少なくとも 1 つの単語が見つかりました。さて、それは「OR」の動作か、値が0の「mm」パラメータのようなものだと思います。
要するに、すべての単語を一致させたいのです。結果がない場合は、少なくとも 1 つの単語の一致を試みる必要があります。一意のクエリで 2 つの異なる動作を行うことは可能ですか?
ps: eDismax パーサーを使用しています。
solr - Solr を使用した Wiki URL の検索
Solr を使用して、イントラネット上の Wiki のインデックス作成と検索を試みています。edismax を使用して多かれ少なかれ動作していますが、検索結果でメイン トピック ページを最初に表示するのに問題があります。たとえば、データベースにいくつかの URL があるとします。
「foo bar」を検索して、最初のリンクが wiki の特定のトピックのメイン ページであるため、トップの結果として返されるようにしたいと考えています。検索でタイトルと URL フィールドをブーストしようとしましたが、ドキュメントの fieldNorm 値がスコアに影響を与え続け、サブページのスコアが高くなります。ある特定のケースでは、メイン トピック ページが 2 番目の結果ページに表示されます。
トップ 5 の検索結果に表示されるように、最初の URL スコアをサブカテゴリよりも大幅に高くする方法はありますか?
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 でこれらの情報を自分で見つけることができるヒントをいただければ幸いです。
solr - 複数値フィールドの値の数によるSolrブースティング結果
クエリ時に、特定の多値フィールドの値の数によってドキュメントをブーストする方法はありますか? つまり、値の数が多いほど、ブーストが大きくなります。
bf="count(pets)^5.0"
ペットが多値フィールドであるようなものはありますか?
bf="number_of_pets^5.0"
インデックス時にカウントを保存し、クエリ時に使用して値ブーストを使用できることを認識しています。ただし、これを実現するためだけにスキーマの変更 (およびすべてのインデックスの再作成) を回避できるように、これに対するクエリ時間の解決策を見つけようとしています。