问题标签 [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.
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)(如何)通过选择索引列来缩小查询范围时,我可以对分区键进行范围查询吗?
elasticsearch - 使用 elasticsearch 对字符串进行范围查询
我正在尝试将范围查询与弹性搜索一起使用
但是弹性返回没有结果。我发现系统存在字符串包含问题-
或_
这是该字段的映射:
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 中?
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
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的。
marklogic - MarkLogic 范围查询
您好 MarkLogic 专家,
您能否建议如何使用 MarkLogic 范围查询来实现以下示例结果。
XML
询问:
结果应该是:苹果
结果应该是:苹果、橙子
结果应该是:苹果
结果应该是:苹果
结果4:苹果
结果应该是:苹果
请帮助对上述结果进行一些示例查询,谢谢
问候,
迪内什
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
mysql - MySQL:强制查询在 WHERE 子句中使用带有局部变量的索引
语境
我有一个应用程序,它从表中选择一个加权随机条目,其中前缀总和(权重)是关键部分。简化的表定义如下所示:
其中`fenwick`
存储 的 Fenwick 树表示中的值`weights`
。
让每个条目的“范围”跨越其前缀总和及其前缀总和 + 其权重。@r
应用程序必须在 和之间生成一个随机数0
,SUM(weight)
并找到范围包含 的条目@r
,如下所示:
Fenwick 树与MEMORY
引擎和二分搜索相结合,应该允许我及时找到适当的条目O(lg^2(n))
,而不是O(n)
使用简单查询的时间:
研究
由于多个查询的开销,我一直在尝试将前缀和运算浓缩到一个查询中(与脚本语言中看到的多个数组访问相反)。在这个过程中,我意识到传统的求和方法,包括以降序键顺序访问元素,只会对第一个元素求和。WHERE
当子句中存在变量时,我怀疑 MySQL 会线性地遍历表。这是查询:
其中@entryid
是我们正在计算其前缀总和的条目的 ID。我确实创建了一个有效的查询(以及一个lft
返回整数最左边位的函数):
但这只是证实了我对线性搜索的怀疑。查询也是如此EXPLAIN
:
指标:
现在,我看到很多问题都在询问如何消除变量中的变量WHERE
以便优化器可以处理查询。但是,我想不出这个查询可以不用id=@n
. 我已经考虑将我想要求和的条目的键值放入一个表中并使用连接,但我相信我会得到不良影响:要么是过多的表,要么是通过评估来进行线性搜索@entryid
。
问题
有什么方法可以强制 MySQL 使用该查询的索引?如果他们提供此功能,我什至会尝试不同的 DBMS。
algorithm - 如何利用最近邻搜索算法进行固定半径搜索?
最近邻搜索问题有很多工作,所以我想知道我是否想做固定半径范围搜索,我可以利用这些算法进行最近邻搜索吗?
也许我可以一遍又一遍地进行 kth-nearest-neighbor 搜索,直到找到超出半径范围的点,但我想这可能会造成很多浪费。
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) ) 。