- 30 万多个视频
- 1000 多万个标记,指向视频中的时间范围
{
"markerCategory": "something",
"markerDesc": "something-more-specific",
"frameIn": 120001,
"frameOut": 140002
},
{
"markerCategory": "something-else",
"markerDesc": "something-else-more-specific",
"frameIn": 130001,
"frameOut": 135002
}
当搜索以下内容时,任何数据库/搜索索引表现最佳的建议:
包含重叠时间范围内的事件的视频
category A
, 按涵盖的时间长度排序category B
视频当前从某些专有关系数据库导出并存储在 Apache SOLR 实例中以供搜索。
- 这些类型的查询是否有特定的名称(“反向范围查询”或类似的东西......)?
- 对于这些类型的查询,您有什么建议吗?哪种技术效果最好?
我在想也许是 elasticsearch?
任何主流关系数据库系统都应该没问题。看来您的数据架构定义明确。
当然,索引
(markerCategory, frameIn, frameOut)
可能是您想要的。在 RDBMS(关系数据库管理系统)中,您还可以向表中添加计算/生成列,该表存储了覆盖时间量frameIn
和之间的差异frameOut
,并将其也添加到索引中。除非您对覆盖时间的定义是两个重叠类别连接后的总跨度。在这种情况下,可以利用索引视图来保留连接的结果以及连接结果之间的总覆盖时间跨度,然后使其也可以索引。
Elasticsearch 旨在索引和搜索大量文本实例,类似于 Google 这样的搜索引擎。它非常适合全文搜索的概念。我认为您的用例对它没有意义。