問題タブ [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.
lucene.net - Lucene.Net:MultiFiledQueryParserをBooleanQueryに変換するにはどうすればよいですか?
これは、マルチフィールドクエリを実行する現在のコードです
これをどうやってやるのかよくわかりません。ブールクエリを実行して2番目のフィルターを含めることができるように変更するにはどうすればよいですか?
注:次のようなフィールドで検索できるようにする必要があります
ユーザー:ユーザー名
場所:ドイツ
など
以前に厳密にブールクエリを試しましたが、上記の検索用語を使用できませんでした。どこが間違っていたのかわからない。
algorithm - lucene ブール検索
lucene が次のようなブールクエリに一致するドキュメントを見つける方法を知りたい: "+a +b c"
、そのアルゴリズムは何ですか?
ありがとう
c# - TermQueryを使用したluceneブールクエリ?
私は次のコードを得ました:
そして人生は良かった。私が気付くまで、私もNotActive
. だから私は自分自身に言いました、わかりました、問題ありません、次のように for ループの直後に mainQuery に別のクエリを追加しましょう:
残念ながら、これは機能しません。誰でもこれを行う正しい方向に私を向けることができますか? 私はフィルターについて読んだことがありますが、それを適用することさえできましたが、スコアを失います (まあ、実際に失うわけではありませんが、元のクエリから離れています)。についても読みましTermQueryWrapper
たが、それを実装する方法を見つけることができませんでした(正しい方向に見えても、それが必要かどうかはわかりません)。
編集:言及するのを忘れていました。すべてのフィールドfields
が分析されてStateProperties.IsActive
いNOT_ANALYZED
ます。
java - ブール検索構文を使用して Java 文字列マッチングを行う方法は?
ユーザークエリとテキストを受け取り、一致するかどうかを返す Java/Scala ライブラリを探しています。
Twitter ストリームなどの情報ストリームを処理していますが、バッチ処理を使用する余裕はありません。Lucene RAMDisk を介してインデックスを作成し、後でクエリを実行する代わりに、各ツイートをリアルタイムで評価する必要があります。
ANTLRを使用してパーサー/レクサーを作成することは可能ですが、これは非常に一般的な使用法であるため、以前に誰もライブラリを作成していないとは信じられません。
私が必要としているものを正確に実行するTextQuery Rubyライブラリのいくつかのサンプル:
Ruby に実装されると、私のプラットフォームには適していません。また、ソリューションのこの時点で JRuby を使用することはできません。
同様の質問を見つけましたが、答えを得ることができませんでした: Boolean Query / Expression to a Concrete syntax tree
ありがとう!
python - Python を使用してツリーを構築する
ランク付けされていないブール検索を実装しようとしています。このためには、ツリーを構築し、DFS を実行してドキュメントを取得する必要があります。リーフ ノードはありますが、ツリーを構築するのが困難です。
例: query = OR ( AND (マリア・シャラポワ) テニス)
結果:
DFS を使用してツリーをトラバースし、特定のドキュメント ID に相当するブール値を計算して、コーパスから必要なドキュメントを識別します。誰かがPythonを使用してこれを設計するのを手伝ってくれますか? クエリを解析し、今のところリーフ ノードを取得しました。
編集:私はここに新しいので、明確さを欠いて申し訳ありません。私は基本的に非常に素朴な検索エンジンを構築しようとしています。したがって、ユーザーは OR ( AND (マリア シャラポワ) テニス) のようなブールクエリを入力します。入力したクエリに応じてユーザーに表示されるウィキペディア ドキュメントのコーパスがあります。
これまで、クエリを解析して個々の演算子 (OR、AND など) を取得しました。そして、個々の検索用語 (マリア、テニスなど)。解析用のコードは、基本的にすべての演算子とクエリ用語を入力どおりにグループ化する単なる関数です。すなわち、(マリア・シャラポワ)、(テニス)、OR、AND。ツリーのボトムアップを作成するために、この関数をこのように解析しました。ここで、テニス、マリア、シャラポワなどの対応するキーワードの転置リストを使用して、転置リストを使用してブール演算を実行し、特定の「documentid」を取得します。次に、この documentid が API に渡され、API が正しいウィキペディア ページを取得します。
トピックをより詳細に説明するために、私の問題の詳細については、このドキュメントを参照してください: http://www.ccs.neu.edu/home/jaa/CSG339.06F/Lectures/boolean.pdf
boolean-logic - ブール代数:それを証明する
私はブール代数で次の問題に問題を抱えていました。
A + A'B = A + B
上記のセクションを証明する必要があります。私はそれがすでに減少していることを意味します私はそれをさらに減らすことはできません。
php - PHP !$a と $a の違い === false
これら 2 種類のチェックの違いは何ですか? そして、失敗して false を返す関数またはメソッドと呼ばれる型チェックの正しい方法はどれでしょうか?
また
javascript - 今月を返すようにGoogleニューススクリプトを調整する
このGoogleニューススクリプトを調整するには、変数を使用して、現在の年と月をブール検索に配置します。具体的には、「tabbed.execute(...?」で始まる行)を調整します。
私の最終的な目標は、このスクリプトが現在の年と月のコンテキストで検索語を返すようにすることです。初心者を助けてくれてありがとう!
c# - Lucene.NET 3.0.3のBooleanQueryが何も返さないのはなぜですか?
Lucene.NET 3.0.3を使用して2つのフィールド(「Noidung」、「Dapa」という名前の2つのフィールドがあります)を検索しています。BooleanQuery
これを作成するためにC#で使用していますが、このコードを実行しても何も返されません。結果として、私はそれをテストしたので、検索するソースに何も問題がないと確信しています。では、Lucene.NET 3.0.3を使用している人が説明を提供できますか?
インデックスに2つのフィールドがあります( "Noidung"、 "Dapa")。ここで、フィールド「Noidung」を検索し、結果を取得して「Dapa」で検索します。booleanQueryを使用しましたが、結果に何も返されませんか?助けて?
mysql - mysql の結果に対するブール演算
私は3つのMysqlテーブルを持っています:
[ブロック値]
- id_block_value
- file_id
[メタデータ]
- id_metadata
- メタデータ名
[メタデータ値]
- メタ ID
- 価値
- blockvalue_id
これらのテーブルには、ペアがあります: metadata_name
=value
そして、ペアのリストはブロック ( id_block_value
)に入れられます
(A)高さ = 1080 が必要な場合:
(B)ファイル拡張子 = mpeg が必要な場合:
しかし、私が望むなら:
- AとB
- AまたはB
- BではなくA
じゃあ何が一番いいのかわからない。
についてA or B
は、どれがうまくいくか試しA union B
てみました。
についてA and B
は、Mysql にはないのでintersect
、試しA and file_id in(B)
てみましたが、perfs を見てください (>4mn)...
私も試してみB and file_id in(A)
ましたが、どちらの方がはるかに優れていますが、どちらを最初に置くべきかわかりません。
それで... 私は今何をしますか?ブール演算のより良い方法はありますか? ヒントはありますか?私は何か見落としてますか?
編集:データはどのように見えますか:
このデータベースには、FILE
挿入された各オーディオ/ビデオ ファイルのテーブルの行が含まれています。
- 10、/path/to/file.ts
- 11、/path/to/file2.mpeg
METADATA
表には、潜在的な情報ごとに行があります。
- 301、高さ
- 302、ファイル拡張子
次に、BLOCK
テーブルの行でコンテナーを定義します。
- 101、ビデオ
- 102、オーディオ
- 104、一般
ファイルにはメタデータの複数のブロックを含めることができ、BLOCK_VALUE
テーブルには BLOCKS のインスタンスが含まれます。
- 402、101、10 // ビデオ 1
- 403、101、10 // ビデオ 2
- 404, 101, 10 // ビデオ 3
- 405、102、10 // オーディオ
- 406、104、10 // 一般
この例では、ファイル 10 に 5 つのブロックがあります: 3 つのビデオ (101) + 1 つのオーディオ (102) + 1 つの一般 (104)
値は次の場所に格納されますMETADATA_VALUE
- 302, 406, "ts" // ファイル拡張子、一般
- 301, 402, "1080" // 高さ, ビデオ 1
- 301, 403, "720" // 高さ, ビデオ 2
- 301, 404, "352" // 高さ, ビデオ 3