問題タブ [solr-query-syntax]
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クエリbfフィールドを理解できません
私はsolrに非常に慣れておらず、ドキュメントの痛みを後押しするために取り組んでいますが、の動作を理解できませんbf
どういう意味ですかbf= x^y
使い方?上記のクエリのさまざまな値x
に影響を与える場合、スコアはどうなりますか?y
特定の式はありますか??
solr - 列の特定の順序で Solr で関連する検索結果を取得する方法。
Solr4.7.2 の結果を特定の関連する順序でグループ化し、solr 検索を行っているタイトル、概要、およびコンテンツの 3 つの列があるようにします。
現在、このクエリを実行してシンプルクエリパーサーを使用しています。
文字列「2016」を検索して結果を表示しています
ここで、タイトルの完全一致が最初に関連性の順序で表示されるように結果をグループ化し、次に完全一致が表示され、次に完全一致が表示され、次に完全一致完全一致が表示されるようにします。別のグループでは、スコアの低いタイル > 概要 > コンテンツを表示する必要があります。
例の場合。期待される結果は
qf=title^2 サマリー コンテンツを適用して dismax クエリ パーサーを使用しようとしましたが、結果が表示されません。
cassandra-2.0 - ワイルドカード文字の Cqlsh クエリ
クエリで次の操作を実行したい
A で始まる、または A で終わる従業員の名前を一覧表示する
しかし、カサンドラがワイルドカード文字をサポートしていないサイトをいくつか見ましたが、それは本当ですか
私もsolr_queryを参照しましたが、cqlshは未定義の名前solr_queryというエラーを出します
select * from emp where solr_query='name:A* or name:*A'; 名前は列です
これで私を助けてください
solr - 一意のキーにワイルドカードを使用してアトミック更新を介して複数値フィールドから値を削除しますか?
整数 (キー)、アンダースコア、10 進数の値を持つ多値フィールド (custprc) があります。フィールドは次のようになります。
{1234_11.22, 1235_12.00, 1236_11.44}
一意のキー フィールド (id) を使用すると仮定すると、remove コマンドまたは removeregex コマンドをアトミック更新で問題なく使用して、そのフィールドからエントリを削除できます。ただし、id フィールドにワイルドカードを使用するか、id フィールドをまったく使用せずに別のフィールド (catlgcode) を使用して、同様の更新を行うことができるようにしたいと考えています。
次のコマンドは問題なく機能します。
{"id":"20303001123", "custprc":{"removeregex":["1234.[0-9]+.[0-9]+"]}}
私はこのようなものをもっと使いたいです:
{"id":"20*", "custprc":{"removeregex":["1234.[0-9]+.[0-9]+"]}}
またはこれ:
{"catlgcode":"20", "custprc":{"removeregex":["1234.[0-9]+.[0-9]+"]}}
どちらも機能していないようです。SOLR はエラーを返しません。応答コード 0 を受け取りますが、レコードは変更されません。schema.xml で id フィールドを required=false に設定し、文字列から text_general に変更しようとしましたが、これまでうまくいきませんでした。
大規模なデータセットを比較的頻繁に更新しているため、30,000 以上のアトミックな更新ではなく、ワイルドカードを使用して 1 つの要求を送信したいと考えています。何か不足していますか?何か案は?
solr - solr を使用して単一のクエリで複数の結合を介して応答を正規化する
次のsolrコレクションに対してクエリを実行できます
次のようなものが返されます。
典型的な検索ボックス入力で book_name AND/OR category_name AND/OR author name で検索しますか? または別の応答、私は似たようなものを返しますか?
それ以外の場合、それを達成するための推奨される回避策/ベストプラクティスはどれですか?
...バックエンド Web アプリを使用して応答を構成することなく、フロントエンド Web アプリ全体で単一のクエリを実行したいと考えています。そのデータは既に solr にあるためです。
solr - Solr ワイルドカード検索
タイトルで本を検索したい。私が2冊の本を持っているとしましょう
次に、次のような solr ワイルドカード検索を実行します。
この検索で 2 冊の本を期待していましたが、見つかったドキュメントの数は 0 でした
参照ワイルドカード検索を見つけました:
私はsolr6を使用しています。
sorting - 関連性と複数フィールドの包含によるSolrソート
Solr 5.3.0 を使用してニュース検索システムを作成しています。以下のニュース分野があると仮定します:{
- 題名
- コンテンツ
- 日にち
- ニュースの種類
}
この検索システムでは、会社名と管理者名の両方を検索しています。会社名を「スターク インダストリーズ」、マネージャー名を「トニー スターク」としましょう。結果を日付 (これは簡単に実行できます)、関連性、および次のルールで並べ替えたいと考えています。
A:
「タイトル」フィールドと「コンテンツ」フィールドの両方に用語が存在するというニュース。
用語が「タイトル」フィールドにのみ存在するというニュース。
用語が「コンテンツ」フィールドにのみ存在するというニュース。
B:
社名(スターク・インダストリーズ)とマネージャー名(トニー・スターク)の両方が存在するというニュース。
社名しかないというニュース。
マネージャー名だけが存在するというニュース。
順序は 1>2>3 である必要があります (つまり、1 が 2 の上にある必要があります)。そして、A と B は、ニュースを採点するための 2 つの異なる方法である必要があります。そして、最終的なスコアは A*B に等しくなる場合があります。
このコードを使用して、「タイトル」フィールドに「コンテンツ」フィールドよりも重みを付けますdefType = edismax & qf=notice_title^200+notice_content
。そこで、「タイトル」フィールドを「コンテンツ」フィールドよりも重要にしています。
しかし、この方法では、A1 > A2 > A3 とは言えません。「タイトル」フィールドのスコアが上がるだけです。ルール B と同様に、qf を使用して会社名の重みを増やすことしかできません。
(Title && Content):(CompanyName && ManagerName) の重みを増やす方法があれば役立つはずです。(両方の用語が両方のフィールドに存在することを意味しようとしています。) しかし、この構文は qf では機能しません。
どんな助けでも大歓迎です。
solr - SOLR 2 つのクエリの結合
以下のSQLのようなユニオンが必要です。
上位 10 を選択 * テーブル 1 から名前順 desc union 上位 5 を選択 * テーブル 1 から名前順 asc
したがって、結果は 15 レコードの単一のリストになります。SOLR の単一クエリでこれを行うことは可能ですか?
SOLR 5.3.1 を使用しています
フィードバックをお寄せいただきありがとうございます。
solr - 結果に空の値を持つフィールドが含まれていないSolr
Solr のインデックス付きデータには、値が空のフィールドがいくつか含まれています。実行するq=*:*
と、値が空のフィールドは含まれません。結果に空の値を持つフィールドを取得するには、クエリ中にどのパラメーターを渡す必要がありますか。
編集: csv ファイルを使用してデータのインデックスを作成しています。ファイル内のエントリは次のとおりです。
上位 10 件のレコードを検索すると、2 つのフィールドしか取得できません。そのために値が保存されていなくても、すべてのフィールドを取得したい。