问题标签 [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.
search - elasticsearch按范围查询日期
我的弹性搜索有数据,尤其是日期这样的数据:
我正在添加一个日期范围选择器,并希望使用选择的日期来查询弹性搜索数据,其中 startTime 在所选范围内。我不确定如何将此查询构造为 elasticsearch,或者它是否甚至可以与这个字符串字段一起使用(不过,我可能会更改它)。
有人能帮我一下吗?
cassandra - 使用动态组合进行范围查询
有人可以解释这个例子发生了什么。我的 CF 有一行(键是一个字符串:manju),它又只有一列。列名是由两个部分组成的动态组合:("review","T23333")。该值是布尔值 true。
现在,我想从此 CF 中检索信息。以下使用简单的切片查询。
以下不起作用:
对于以下情况,我什至得到一个错误:
我想我想了解的是 Cassandra 如何使用范围值来确定匹配?我想做的推荐范围是多少?
谢谢,小便
mongodb - 在 Mongoose 中进行小时/日/月/年的范围查询
试图弄清楚如何做到这一点。基本上我想按我提交的时间/天/月/年进行排序。
每个submission
都有一个created
包含 Mongoose Date 对象的字段,格式为"created" : ISODate("2013-03-11T01:49:09.421Z")
. 我需要在 find() 条件下与此进行比较吗?
这是我当前的查询(出于分页目的,我将其包装在计数中,因此请忽略该部分):
有人可以帮我解决这个问题吗?使用当前的代码,无论时间范围如何,它都会给我所有提交,所以我显然没有正确地做某事
full-text-search - Lucene 2.4.0 范围查询未按预期工作
以下是具有值的索引字段:
创建索引和搜索的代码:
逻辑:- 当前日期应该在这两个字段之间。
低于范围查询正在工作:-
低于范围查询不起作用:-
任何帮助都将不胜感激。在此先感谢
neo4j - 如何使用范围查询提取 neo4j 数据
我是 neo4j 的新手。我需要从这 2000 万个数据集中提取前 500 万个或任何 500 万个数据范围内的关系。我一直在努力对我的数据运行范围查询。如果我可以提取数据并再次导入 neo4j,那对我来说将是非常幸运的。
这些是我的节点的属性 - 地址、哈希、时间、通知、public_key(所有节点不包含相同的属性,一些包含地址、一些哈希、时间等)
只是让你知道。如果我开始 n=node(*) 返回 n; 然后看起来我的电脑进入了永无止境的睡眠状态。
任何帮助将不胜感激。
riak - Riak 是否支持二进制安全字符串上的范围查询?
来自 Redis,我喜欢你可以将任何二进制 blob 放在 Redis 中,它只是被视为一个字符串。这是可能的,因为 Redis 字符串就是他们所说的“二进制安全”。这使得在字符串编码的二进制数据之上执行范围查询之类的事情成为可能,这对于位集操作等非常有用。
我正在调查Riak,到目前为止我很喜欢。Riak 似乎有范围查询,但我不确定 Riak 中的字符串在上述意义上是否是“二进制安全的”。如果没有,是否有另一种方法可以在 Riak 中存储二进制数据,并且仍然可以快速对它们进行范围查询?
谢谢
cassandra - Cassandra 中的范围查询 (CQL 3.0)
我不完全理解的 Cassandra 的一个主要部分是它的范围查询。我知道Cassandra强调分布式环境,注重性能,但可能正因为如此,它目前只支持几种可以高效完成的范围查询,我想知道的是:支持哪些范围查询通过卡桑德拉。
据我所知,Cassandra 支持以下范围查询:
1:使用关键字对主键进行范围查询TOKEN
,例如:
2:在二级索引上具有一个相等条件的范围查询ALLOW FILTERING
,例如:
但是我想知道我是否遗漏了一些东西并寻找一个规范的答案,它列出了当前 CQL 支持的所有类型的范围查询(或一些允许更多类型的范围查询的解决方法)。
algorithm - 如何将数组间隔中的所有值增加给定的数量
假设我有一个长度为 L 的数组 A。我将获得 n 个区间 (i,j),并且我必须递增 A[i] 和 A[j] 之间的所有值。哪种数据结构最适合给定的操作?
间隔是预先知道的。
performance - 查找给定范围内大于给定数字的最小元素
给定二维平面上的 N (N <= 10 6 ) 个点和一个整数 D (N <= 10 6 ),我们想要找到两个点 p1,p2(p1 右侧的 p2),使得p1.y
并且p2.y
至少为 D 并且p2.x - p1.x
被最小化。
x 和 y 轴在 0..10 6范围内
这是 USACO 过去比赛中的一个问题。
这是我解决它的尝试:
MAXY = N 个点中的最大 y 轴。
假设我们知道 p1,那么我们可以很容易地找到 p2;通过取所有 y 轴在p1.y+D
MAXY 范围内或在 0 到 0 范围内p1.y-D
的点,并取最小 x 轴大于 的点p.x
。这将是 p2 的最佳选择。
但是由于我们不知道 p1,我们将不得不尝试 p1 的所有点,因此应该有效地找到 p2 的最佳选择。
我为此使用了分段树。树中的每个节点都会按照 x 轴的排序顺序存储相应范围内的所有点。在查询时,如果一个节点落在查询范围内,那么我们对数组进行二进制搜索p1.x
并返回大于它的最小元素。
对于 p1 的每一个选择,我们用 0,p1.yD 和 p1.y+D,MAXY 的范围查询树两次,并取两个点中最好的一个。
树的构建可以在 O(NlogN) 时间内完成。每个查询将花费 O(logN*logN) 时间,并且我们进行 N 次查询,因此所花费的总时间为 (Nlogn*logn),它可能不会在 2 秒的时间限制内运行。(10 6 *20*20)。此外,占用的内存将是 O(NlogN),大约为 80 mb (100000*20*4 kb),因为限制为 64 mb,所以太多了。
我们如何才能更快地执行查询并使用更少的空间?
algorithm - 如何有效地从 Fenwick 树中找到一系列连续的已用/空闲槽
假设我正在跟踪 Fenwick 树中插槽的使用情况。例如,让我们考虑跟踪 32 个插槽,导致如下图所示的 Fenwick 树布局,其中网格中的数字表示底层数组中的索引,其中每个单元格中的值是由 Fenwick 树操作的计数该段中“已使用”项目的总和(即数组单元格 23 存储范围 [16-23] 中已使用插槽的数量)。最低级别的项目(即单元格 0、2、4、...)只能具有“1”(已用槽)或“0”(空闲槽)的值。
我正在寻找的是一种有效的算法来找到给定数量的连续空闲插槽的第一个范围。
为了说明,假设我有如下图所示的 Fenwick 树,其中总共使用了 9 个插槽(请注意,为了清楚起见,添加了浅灰色数字,实际上并未存储在树的数组单元中)。
现在我想找到例如 10 个空闲插槽的第一个连续范围,它应该找到这个范围:
我似乎找不到一种有效的方法来做到这一点,这让我有点头疼。请注意,由于所需的存储空间量对我的目的至关重要,我不希望将设计扩展为段树。
任何关于 O(log N) 类型解决方案的想法和建议都将受到欢迎。
编辑
赏金期到期后的更新时间。感谢所有评论、问题、建议和答案。他们让我重新思考问题,教会了我很多东西,并向我指出(再一次;有一天我可能会学到这一课),我应该在提问时更多地关注我想要解决的问题。
由于@Erik P是唯一对包含请求代码/伪代码的问题提供合理答案的人,因此他将获得赏金。
他还正确地指出,使用这种结构进行 O(log N) 搜索是不可能的。感谢@DanBjorge提供的证明,让我想到了最坏情况下的性能。
@EvgenyKluev的评论和回答让我意识到我应该以不同的方式提出我的问题。事实上,我已经在很大程度上按照他的建议做了(参见https://gist.github.com/anonymous/7594508 - 它显示了我在发布这个问题之前遇到的问题),并问了这个问题,希望有一个有效的方法来搜索连续范围,从而防止将此设计更改为段树(这将需要额外的 1024 字节)。然而,这样的改变似乎是明智之举。
对于任何感兴趣的人,可以在此处找到与此问题中使用的示例匹配的二进制编码的 Fenwick 树(以 64 位编码的 32 slot fenwick 树):https ://gist.github.com/anonymous/7594245 。