問題タブ [booleanquery]

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.

0 投票する
1 に答える
7605 参照

c# - Must と Should のブールクエリを組み合わせた Nest Elasticsearch

ドキュメントのグループを年、形式、および内容でフィルタリングしたいと考えています。

n 疑似 SQL:

ご覧のとおり、フォーマットとコンテンツ アイテムの数は動的であり、ユーザーによって選択されます。これまでのところ、各フィールドに対して個別に動的クエリを作成し、以下のコードのように bool クエリを使用してそれらを組み合わせる方法を理解しました。

このコードを実行すると、年とコンテンツ フィールドの結果は期待どおりですが、フィルター処理されたリストに含まれていない他の形式も含まれています。選択した形式でそれらのドキュメントを取得したいだけです。誰かが私の間違いを知っていますか?

0 投票する
1 に答える
113 参照

regex - 正しくない AND OR ロジックに一致する正規表現

AND正しくない/論理ステートメントに一致する正規表現が必要ですがOR、たとえば引用符で囲まれている場合は一致しません。

次の場所に一致するものはありません:

ANDまたはORの両側に少なくとも 1 つの空白文字と 1 つの非空白文字があり、文字がORまたはで構成されていない場合、一致はありませんAND。したがって、たとえば ..R AND S.. は一致するべきではありませんが、一致する(OR) OR (OR)必要(AND) AND (AND)があります。

マッチ

ANDor演算子の前、後、または両側に空白が含まれている例ORもありますが、これらも一致する必要があります。

私は.NETフレームワークを使用していますが、これが私が思いついたものです。ただし、複雑すぎるようです。単純化する方法が必要です。

0 投票する
1 に答える
40 参照

java - 階層的スコアリング Lucene、OR 用語処理

興味プロファイルを Lucene クエリに変換しようとしていました。

次のような JSON 形式で、タイトル用語といくつかの拡張用語が与えられます。

{"title":"Donald Trump", "Expansion":[["republic","republican"],["democratic","democrat"],["campaign"]]}

対応する Lucene クエリは、次のような BooleanQuery にすることができます (タイトル ターム ブースト ファクターを 3.0 に設定し、拡張ターム ブースト ファクターを 1.0 に設定します)。

+(text:donald^3.0 text:trump^3.0 (text:democrat text:democratic) (text:republic text:republican) text:campaign)

IndexSearcher's explain()メソッドを使用して、

次のような一致するドキュメント

I know people just want to find a way to be famous without taking any risks, republic republican Donald Trump Campaign.

スコアは 9.0 です

BooleanQuery (text:republic text:republican) 別名をスコアリングするために、Lucene スコアリング関数を書き直す方法はありますか。["republic","republican"]"republic" の一致する重みまたは "republican" の一致する重みのいずれかの最大値としてクラスタ化しますか?

0 投票する
1 に答える
5162 参照

java - ルセン6.0!BooleanQuery をインスタンス化し、他の検索クエリを追加する方法は?

Lucene 6.x で BooleanQuery をインスタンス化する方法は? ブールクエリを使用して他のクエリを追加する方法は?

Lucene 4.x では、次のように BooleanQuery を使用します。

Lucene 6 でこれを実現する方法。

0 投票する
3 に答える
480 参照

elasticsearch - Elasticsearch - クエリで重要な単語を推測する方法は?

Available Job position Indexに対して、以下のような 2 つのクエリを実行するとします。

  • PHP 開発者
  • ルビー開発者

PHP Programmerのような単純なブールANDクエリの位置を実行すると、 developerの存在が不足するため除外されます。Ruby 開発者を含むPHP 開発者ドキュメントに対してORブールクエリを実行すると、結果にも含まれます。

PHP Developerというフレーズで、PHPがDeveloperよりも重要であることを検出する最良の方法は何ですか?

そのため、 PHP Developerに対して検索を実行すると、PHP用語が結果に表示される必要がありますが、 Developerセクションはスコアを上げるだけです。

0 投票する
2 に答える
1038 参照

arrays - 配列フィールドのブール クエリ

配列フィールドにネストされたブール フィールドと文字列フィールドのクエリに関して、非常に特殊な問題があります。インデックス マッピングは次のとおりです。

ドキュメント インデックスには、配列フィールドにネストされていない他の多くのフィールドもありますが、クエリ フィールドに含める必要があります。次のようなフィルターとブールクエリを使用したアプローチを試しました。

このクエリの問題は、私の意見では返される必要のないドキュメントが返されることです。この場合のドキュメントは次のとおりです。

お気づきのとおり、array_field_1 の 3 番目の項目には boolean_field_2: false と検索対象のテキストが含まれています。しかし、私の filter: 句によれば、array_field_2.integer_field_1: または array_field_3.integer_field_1 が発生しない限り、array_field_1.boolean_field_2 が true であるドキュメントのみを取得する必要があります。array_field_1[2] が boolean_field_2 が false であることを考慮していないようです。このドキュメントが取得されないようにクエリを作成するにはどうすればよいですか?

よろしくお願いします、ギエルメ