【问题标题】:When to query cassandra directly vs using an indexer何时直接查询 cassandra 与使用索引器
【发布时间】:2018-02-10 09:30:03
【问题描述】:
使用 cassandra 之上的索引器(弹性搜索/solr)读取大数据(返回数十亿结果的查询)是否是个好主意?还是直接问cassandra会更先行?我只是想知道读取数据,而不是更新和删除。
索引器是否应该只用于返回较小数据集的搜索?
我想简而言之,我的问题是什么时候在大数据数据库上查询索引器更好——更具体地说是 cassandra,当查询缩小了潜在的范围时?这是否意味着如果查询返回的结果范围很广,最好直接查询 cassandra?
【问题讨论】:
标签:
elasticsearch
solr
cassandra
cassandra-3.0
【解决方案1】:
读取大数据是否是个好主意(返回数十亿的查询
结果)使用索引器(弹性搜索/ solr)
卡珊德拉?还是直接问cassandra会更先行?一世
我只是想知道读取数据,而不是更新和删除
你的意思是,读取数据,索引它,然后从索引中再次读取它?
那么肯定读一次会更好。即直接询问 Cassandra。
除非,您想使用 ElasticSearch 语言功能。如果您的查询不考虑自然语言,请直接从 Cassandra 中读取。
索引器是否应该只用于返回较小集合的搜索
数据?
是的,搜索引擎已针对此类查询进行了优化。搜索引擎解决了两个主要问题:
1.返回相关结果各种类型的过滤和自然语言能力。例如搜索“USA”并找到“United States of America”
2. 以最相关的方式对结果进行评分(通过一些排名函数,例如TD-IDF 或BM25
当执行搜索查询时,仅返回文档的 id 并从索引的 store 部分组装,这是最昂贵的搜索引擎操作(除了优化之外 :P )。
我想简而言之,我的问题是什么时候查询更好
大数据数据库上的索引器 - 更具体地说是 cassandra when
查询缩小了潜在的范围?这是否意味着如果
查询返回范围广泛的结果,最好查询
直接cassandra?
简而言之,如果您可以像 ElasitcSearch 查询一样缩小 Cassandra 的结果范围,那么您就不需要 ElasticSearch。