我刚开始研究斯特雷肖,但我有些基本的问题让我感到困惑:
发布于 2018-09-06 08:16:03
我听说在cassandra中使用次级索引是不可能的,但是看起来Stratio是基于lucene的cassandra二级索引的实现。如果我使用复层,我需要牺牲卡桑德拉的表演吗?正常的cql查询会有延迟吗?
Stratio的Cassandra索引只是Cassandra二级索引的另一个实现。索引所造成的性能损失可能不会更糟,因为使用Stratio的Cassandra Lucene索引。我能看到的优点是,与Cassandra的默认索引解决方案相比,与基于精确字段匹配的Cassandra默认索引解决方案相比,您将获得Lucene几乎实时的免费文本搜索功能。在这里阅读更多卡桑德拉·卢塞尼性能问题和Stratio‘s Cassandra Lucene指数GitHub
它如何在内部索引数据?它会复制我现有的全部数据吗?
根据定义,索引不会重复数据。索引是一种反向查找。使用指向实际记录的指针对不同的字段进行索引。(就像一本书结尾处不同术语的索引)。因此,如果您的记录中有一个字段存储“起源国”,那么,您的记录中有50%的记录将被设置为美国,其余的50%将设置为加拿大。在索引中,美国只存储一次,加拿大只存储一次,每一次都引用一半的记录。这意味着索引字段越不同,数据就需要更多的存储空间。这里也是Lucene很好地解决了免费文本搜索的地方,方法是将文本标记为不同的单词,并对不同文本中的每个单词的丰富程度应用评分机制。更多信息:与Apache对话的全文搜索:教程 Lucene基本概念
是否建议在生产水平上使用Stratio,它在多大程度上稳定?
很难回答这个问题。这在很大程度上取决于你将如何在生产中使用它。我建议你去找一个概念/原型的证明,然后试一试。
为了查询非分区或非聚类键,我们可以通过创建辅助索引来实现这一点,即使使用Stratio,我觉得我们也在这样做。Stratios自定义索引与Cassandras二级索引究竟有什么不同?
如前所述,Lucene擅长于免费文本搜索,它有多种不同的查询类型,速度快、灵活。另一方面,如果您的搜索要求仅限于几个精确匹配的字段,那么使用标准的Cassandra索引解决方案可能是可行的。
祝你好运,Teo
发布于 2019-11-25 17:42:47
在过去的两年中,我们一直在使用插件。它的性能挣扎的方式与您将经历的使用任何其他次级索引卡桑德拉。对于需要较小延迟(< 100 ms)的用法,我们使用了自己的自定义表作为索引,利用快速主键查找来满足性能要求。我们只对不需要快速响应时间的查询使用基于结构的索引(例如,基于用户/ui的搜索)。
我注意到Stratio项目(https://github.com/Stratio/cassandra-lucene-index)似乎已经死了,因为已经有两年没有更新了。正因如此,我们将计划逐步停止使用这一系统。
https://stackoverflow.com/questions/51798854
复制相似问题