問題タブ [range-query]

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 に答える
15426 参照

search - 範囲別のelasticsearchクエリの日付

私のelasticsearchにはデータがあり、特に日付については次のようなものです:

日付範囲ピッカーを追加していて、選択した日付を使用して、選択した範囲内の startTime を使用してelasticsearchにクエリを実行したいと考えています。このクエリをelasticsearchに構造化する方法、またはこれが文字列フィールドであっても機能するかどうかはわかりません(ただし、変更できる可能性があります)。

誰かがここで私を助けることができますか?

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

mongodb - Mongooseで時間/日/月/年の範囲クエリを実行する

これを行う方法を理解しようとしています。基本的に、提出物の時間/日/月/年で並べ替えたいです。

それぞれsubmissioncreated、Mongoose Date オブジェクトを の形式で含むフィールドがあります"created" : ISODate("2013-03-11T01:49:09.421Z")。find() 条件でこれと比較する必要がありますか?

これが私の現在のクエリです(FWIWのページネーションのためにカウントでラップしているので、その部分は無視してください):

誰かがこれを理解するのを手伝ってくれますか? その現在のコードでは、時間範囲に関係なくすべての提出物が表示されるだけなので、明らかに何かを適切に行っていません

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

full-text-search - Lucene 2.4.0 範囲クエリが期待どおりに機能しない

以下は、値を持つインデックス付きフィールドです。

インデックスを作成して検索するコード:

ロジック :- 現在の日付は、これら 2 つのフィールドの間にある必要があります。

以下の範囲のクエリが機能しています:-

以下の範囲のクエリが機能していません:-

事前に感謝します。

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

neo4j - 範囲クエリでneo4jデータを抽出する方法

私は neo4j を初めて使用します。この 2,000 万のデータセットから最初の 500 万または関係を含む 500 万の範囲のデータを抽出する必要があります。データに対して範囲クエリを実行するのに苦労しています。データを抽出して、neo4j に再度インポートできれば、幸運です。

これらは私のノードのプロパティです - address、hash、time、nounce、public_key (すべてのノードに同じプロパティが含まれているわけではありません。一部のノードにはアドレス、一部のハッシュ、時間などが含まれています)

お知らせするだけです。n=node(*) return n; を開始した場合 その後、コンピューターがスリープ状態にならないようです。

どんな助けでも本当に感謝します。

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

cassandra - Cassandra の範囲クエリ (CQL 3.0)

私が完全には理解していない Cassandra の重要な部分の 1 つは、範囲クエリです。Cassandra が分散環境を重視し、パフォーマンスに重点を置いていることは知っていますが、おそらくそのためか、現在、効率的に終了できる数種類の範囲クエリのみをサポートしています。私が知りたいのは、どの種類の範囲クエリがサポートされているかですカサンドラによる。

私の知る限り、Cassandra は次の範囲クエリをサポートしています。

1: 主キーのキーワードTOKENで範囲クエリを実行します。たとえば、次のようになります。

2: 次のように、キーワードALLOW FILTERINGを使用したセカンダリ インデックスで 1 つの等値条件を使用する範囲クエリ。

しかし、何かを見逃していて、現在のCQLでサポートされているすべてのタイプの範囲クエリ(またはより多くのタイプの範囲クエリを許可するいくつかの回避策)をリストする標準的な回答を探しているのではないかと思っています.

0 投票する
5 に答える
15112 参照

algorithm - 配列間隔内のすべての値を指定された量だけインクリメントする方法

i に長さ L の配列 A があるとします。n 間隔 (i,j) が与えられ、A[i] と A[j] の間のすべての値をインクリメントする必要があります。指定された演算に最も適しているデータ構造はどれですか。 ?
間隔は事前にわかっています。

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

performance - 特定の範囲内で特定の数値より大きい最小要素を見つける

2D 平面上のN (N <= 10 6 ) 点と整数 D (N <= 10 6 ) が与えられた場合、2 つの点 p1,p2 (p1 の右側にある p2) を見つけて、p1.yp2.yあり、少なくとも D であり、p2.x - p1.x最小化されます。

x 軸と y 軸の範囲は 0..10 6

これはUSACO の過去のコンテストの問題です。

ここにそれを解決するための私の試みがあります:
MAXY = N ポイント間の最大 y 軸。
p1 を知っていると仮定すると、p2 は非常に簡単に見つけることができます。p1.y+Dy 軸がMAXY から MAXY までの範囲または 0 から までの範囲にあるすべてのポイントをp1.y-D取得し、最小の x 軸が より大きいポイントを取得しますp.x。これは、p2 に最適な選択です。

しかし、p1 がわからないので、p1 のすべてのポイントを試す必要があるため、p2 の最適な選択を効率的に見つける必要があります。

そのためにセグメントツリーを使用しました。ツリー内のすべてのノードは、対応する範囲内のすべてのポイントを x 軸のソート順に格納します。クエリ中に、ノードがクエリ範囲内にある場合、配列でバイナリ検索を行い、p1.xそれよりも大きい最小の要素を返します。

p1 を選択するたびに、範囲 0,p1.yD と p1.y+D,MAXY を使用してツリーを 2 回クエリし、返された 2 つのポイントの中で最も良いものを取得します。

ツリーの構築は O(NlogN) 時間で実行できます。すべてのクエリには O(logN*logN) 時間がかかり、N 個のクエリを作成するため、合計所要時間は (Nlogn*logn) であり、2 秒の時間制限内で実行されない可能性があります。(10 6 *20*20)。また、使用されるメモリは O(NlogN) になり、これは約 80 mb (100000*20*4 kb) であり、制限が 64 mb であるため多すぎます。

クエリをより速く、より少ないスペースで実行するにはどうすればよいでしょうか?

0 投票する
4 に答える
1932 参照

algorithm - Fenwick ツリーから使用済み/空きスロットの連続した範囲を効率的に見つける方法

フェンウィック ツリーのスロットの使用状況を追跡しているとします。例として、32 個のスロットを追跡することを考えてみましょう。以下の画像に示すように、フェンウィック ツリー レイアウトになります。グリッド内の数字は、基礎となる配列のインデックスを示し、カウントはフェンウィック ツリーによって操作されます。ここで、各セルの値は次のとおりです。そのセグメント内の「使用された」項目の合計 (つまり、配列セル 23 は [16-23] の範囲で使用されたスロットの量を格納します)。最下位レベルの項目 (つまり、セル 0、2、4、...) は、"1" (使用済みスロット) または "0" (空きスロット) の値のみを持つことができます。

フェンウィック ツリーのレイアウト例

私が探しているのは、指定された数の連続した空きスロットの最初の範囲を見つけるための効率的なアルゴリズムです。

説明のために、合計 9 つのスロットが使用されている下の画像に示されている Fenwick ツリーがあるとします (明るい灰色の数字はわかりやすくするために追加されているだけで、実際にはツリーの配列セルに格納されていないことに注意してください)。

例の木

ここで、たとえば、この範囲を見つける必要がある 10 個の空きスロットの最初の連続した範囲を見つけたいと思います。

検索結果の例

これを行う効率的な方法を見つけることができないようで、少し頭痛の種になっています。必要なストレージ容量は私の目的にとって重要であるため、設計をセグメント ツリーに拡張したくないことに注意してください。

O(log N) タイプのソリューションに関する考えや提案は大歓迎です。

編集

バウンティ期間が終了した後の更新の時間。すべてのコメント、質問、提案、回答に感謝します。彼らは私に物事を再考させ、多くのことを教えてくれ、質問するときに解決したい問題にもっと焦点を合わせる必要があることを指摘してくれました。

@Erik Pは、要求された code/pseudo code を含む質問に対して妥当な回答を提供した唯一の人物だったため、報奨金を受け取ります。

彼はまた、この構造を使用した O(log N) 検索は不可能になるだろうと正しく指摘しました。最悪の場合のパフォーマンスについて考えさせられる証拠を提供してくれた@DanBjorgeに感謝します。

@EvgenyKluevのコメントと回答により、質問を別の方法で定式化する必要があることに気づきました。実際、私はすでに彼が提案したことの大部分を行っていました(https://gist.github.com/anonymous/7594508を参照- この質問を投稿する前に行き詰まった場所を示しています)、効率的な方法があることを期待してこの質問をしましたこれにより、この設計をセグメント ツリーに変更できなくなります (追加の 1024 バイトが必要になります)。しかし、そのような変更は賢明なことかもしれません。

興味のある方は、この質問で使用されている例に一致するバイナリ エンコードされたフェンウィック ツリー (64 ビットでエンコードされた 32 スロットのフェンウィック ツリー) をここで見つけることができます: https://gist.github.com/anonymous/7594245