问题标签 [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 回答
994 浏览

indexing - 2ndary 索引上的 Cassandra SELECT 总是按分区键排序?

假设我定义了下表和二级索引:

数据模型的一般背景信息:项目在上下文中具有唯一名称,因此 (item_name, item_context) 是项目的自然键。标签有一些与之相关的价值。

我的应用程序中的一个自然查询是“向我显示带有特定标签的项目 X 的​​所有更新”。这转化为:

当我尝试一些查询时,我注意到虽然集群使用了 Murmur3Partitioner,但结果是按时间排序的。当您考虑到 Cassandra 将二级索引存储为宽行并且列按其名称排序时,这是有道理的。

(1) Cassandra 在选择一个(n)(一组)索引列时是否总是返回按分区键排序的行?

我觉得这很有趣的原因是我的应用程序中的其他自然查询包括:

  • 从日期 D 获取项目 X 的​​所有更新
  • 获取项目 X 的​​ 300 条最新更新

令我惊讶的是,ORDER BY time DESC在 ItemUpdates 上的 select 语句中添加子句会导致错误消息“不支持带有 2ndary 索引的 ORDER BY”。

(2)(如何)通过选择索引列来缩小查询范围时,我可以对分区键进行范围查询吗?

0 投票
2 回答
9220 浏览

elasticsearch - 使用 elasticsearch 对字符串进行范围查询

我正在尝试将范围查询与弹性搜索一起使用

但是弹性返回没有结果。我发现系统存在字符串包含问题-_

这是该字段的映射:


0 投票
1 回答
2020 浏览

postgresql - DST 转换值的 tsrange 范围错误

tsrange当只有一个间隔处于夏令时并且间隔小于 1 小时时,我在 PostgreSQL 中保存类型值时遇到问题。

例如,我想保存 45 分钟的长时间范围["2013-03-09 01:30:00","2013-03-09 01:15:00"],但是我得到了error range lower bound must be less than or equal to range upper bound

有没有办法使用tsrange类型将这些时间范围保存到 PostgreSQL 中?

0 投票
3 回答
37 浏览

mysql - Efficiently SELECT a DB row marked as "latest version" and while matching a given interval

I have a table like so:

min, max represent values of key. Each (min, max) row within the given version is guaranteed to have mutually exclusive key intervals.

Suppose I have a key value of 5 which and I want the latest version of data for that key. This means, I want to select row with id = 4.

Normally I want to select the set with the latest version, but sometimes I may specify the version number explicitly.

What I have now is this:

Question: is there a way to select max version automatically (max ver), without specifying it explicitly? (By "efficiently" I mean without examining all tables rows.)

To Recreate Table

0 投票
0 回答
235 浏览

sorting - 无法从 Solr 字母范围查询搜索字符串中省略标点符号

我正在尝试使用范围查询创建名称(个人和机构)的字母浏览,该查询将在不考虑标点符号或大小写的情况下进行排序,但即使 Solr 中的分析工具建议应正确删除查询中的标点符号,存在查询中的标点符号仍然会对结果产生负面影响。

来自 schema.xml:

来自 solrconfig.xml:

我的实际查询如下所示:

当我搜索 时q=["ACA" TO *],我的最高结果是“ACA(认证档案工作者学院)”,这很好。如果我改变“ACA”中使用的大小写,我的结果不会改变,这也很好。如果我搜索带有句点 ( q=["A.C.A." TO *]) 的首字母缩写词,我根本不会得到适当的结果,而我的热门搜索结果是“A3(音乐组)”。在这种情况下,我怀疑它是按期间排序而不是丢弃它。

根据 Solr 中的分析工具,“ACA”和“ACA”都应该使用我配置的分析器渲染为“aca”。我无法解释为什么这两个搜索实际上并不等效。

(如果有任何区别,索引时间分析实际上是无用的,因为我的代码在提交要索引的数据之前进行相同的转换。这是有原因的。所以只有查询时间分析让我感到悲伤.)

编辑:这是我对“ACA”作为查询的分析应该如何工作的屏幕截图(根据 Solr 分析工具)。

编辑:这是我如何分析的截图

大约四个月后添加:

由于发布问题并没有找到解决方案,我已切换到使用自定义过滤器工厂进行分析。这使我能够控制在提供过滤器的情况下很难或不可能进行的分析。我的第一次尝试遇到了同样的问题 - 分析在常规搜索中有效,但不适用于范围查询。通过添加 implements MultiTermAwareComponent到我的过滤器工厂并覆盖 getMultiTermComponent(). 我不知道这对使用的字段有什么作用KeywordTokenizer,因此在字段值中永远不会有多个术语......但它确实解决了问题。这是针对 Solr 4.2的。

0 投票
1 回答
160 浏览

marklogic - MarkLogic 范围查询

您好 MarkLogic 专家,

您能否建议如何使用 MarkLogic 范围查询来实现以下示例结果。

XML

询问:

结果应该是:苹果

结果应该是:苹果、橙子

结果应该是:苹果

结果应该是:苹果

结果4:苹果

结果应该是:苹果

请帮助对上述结果进行一些示例查询,谢谢

问候,

迪内什

0 投票
1 回答
413 浏览

cassandra - Cassandra how many columns/row for optimal performance?

I am writing a chat server and, want to store my messages in cassandra. Because I need range queries and I know that I will expect 100 messages/day and maintain history for 6 months I will have 18000 messages for a user at a point.

Now, since I'll do range queries I need my data to be on the same machine. Either I have to use ByteOrderPartitioner, which I don't understand fully, or I can store all the message for a user on the same row.

So I'll have 18000 columns. Do you think I'll have performance problems using this cluster key approach?

If yes, what alternative do I have?

Thanks

0 投票
4 回答
1042 浏览

mysql - MySQL:强制查询在 WHERE 子句中使用带有局部变量的索引

语境

我有一个应用程序,它从表中选择一个加权随机条目,其中前缀总和(权重)是关键部分。简化的表定义如下所示:

其中`fenwick`存储 的 Fenwick 树表示中的值`weights`

让每个条目的“范围”跨越其前缀总和及其前缀总和 + 其权重。@r应用程序必须在 和之间生成一个随机数0SUM(weight)并找到范围包含 的条目@r,如下所示:

加权随机条目选择

Fenwick 树与MEMORY引擎和二分搜索相结合,应该允许我及时找到适当的条目O(lg^2(n)),而不是O(n)使用简单查询的时间:

研究

由于多个查询的开销,我一直在尝试将前缀和运算浓缩到一个查询中(与脚本语言中看到的多个数组访问相反)。在这个过程中,我意识到传统的求和方法,包括以降序键顺序访问元素,只会对第一个元素求和。WHERE当子句中存在变量时,我怀疑 MySQL 会线性地遍历表。这是查询:

其中@entryid是我们正在计算其前缀总和的条目的 ID。我确实创建了一个有效的查询(以及一个lft返回整数最左边位的函数):

但这只是证实了我对线性搜索的怀疑。查询也是如此EXPLAIN

指标:

现在,我看到很多问题都在询问如何消除变量中的变量WHERE以便优化器可以处理查询。但是,我想不出这个查询可以不用id=@n. 我已经考虑将我想要求和的条目的键值放入一个表中并使用连接,但我相信我会得到不良影响:要么是过多的表,要么是通过评估来进行线性搜索@entryid

问题

什么方法可以强制 MySQL 使用该查询的索引?如果他们提供此功能,我什至会尝试不同的 DBMS。

0 投票
4 回答
2400 浏览

algorithm - 如何利用最近邻搜索算法进行固定半径搜索?

最近邻搜索问题有很多工作,所以我想知道我是否想做固定半径范围搜索,我可以利用这些算法进行最近邻搜索吗?

也许我可以一遍又一遍地进行 kth-nearest-neighbor 搜索,直到找到超出半径范围的点,但我想这可能会造成很多浪费。

0 投票
0 回答
369 浏览

algorithm - 子数组的快速查询

问题:给定一个排序的整数数组 a[N],我必须处理如下类型的查询

  • [LR] p : 求所有 i=L...R的a i C p之和

约束
N< 10 5
1<=a i <=10 6

假设有Q个这样的查询,那么请提出一个更好的方法来解决这个问题。需要注意的一点是
所有查询都是提前给出的,即离线算法可以工作。
另请注意,数组已排序。
数组中的每个元素都以小数为界。数组没有更新。

谢谢

PS:蛮力方法是逐个元素处理每个查询元素,这会产生复杂性: O(Q * N * (cost of n choose r) ) 。