首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >结构Lucene指数是如何为Cassandra工作的

结构Lucene指数是如何为Cassandra工作的
EN

Stack Overflow用户
提问于 2018-08-11 10:43:31
回答 2查看 1.4K关注 0票数 1

我刚开始研究斯特雷肖,但我有些基本的问题让我感到困惑:

  • 我听说在Cassandra中使用次级索引是不可能的,但是看起来Stratio是基于Lucene的cassandra二级索引的实现。我是否需要妥协卡桑德拉的表现,如果我使用斯特雷肖?正常的CQL查询会有延迟吗?
  • 它如何在内部索引数据?它会复制我现有的全部数据吗?
  • 是否建议在生产中使用Stratio?它有多稳定?
  • 为了查询非分区或非聚类键,我们可以通过创建辅助索引来实现这一点,即使使用Stratio,我觉得我们也在这样做。斯特雷肖的自定义索引与Cassandras二级索引有何区别?
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 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

票数 4
EN

Stack Overflow用户

发布于 2019-11-25 17:42:47

在过去的两年中,我们一直在使用插件。它的性能挣扎的方式与您将经历的使用任何其他次级索引卡桑德拉。对于需要较小延迟(< 100 ms)的用法,我们使用了自己的自定义表作为索引,利用快速主键查找来满足性能要求。我们只对不需要快速响应时间的查询使用基于结构的索引(例如,基于用户/ui的搜索)。

我注意到Stratio项目(https://github.com/Stratio/cassandra-lucene-index)似乎已经死了,因为已经有两年没有更新了。正因如此,我们将计划逐步停止使用这一系统。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51798854

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档