首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >卡桑德拉·卢塞尼指数的好替代品是什么?

卡桑德拉·卢塞尼指数的好替代品是什么?
EN

Stack Overflow用户
提问于 2016-01-22 04:58:51
回答 3查看 3.4K关注 0票数 0

由于我经常遇到下面描述的这个问题,我想要改变,但没有一个更好的选择。

我有两个问题,应该返回相同的结果。但是第二个查询返回的结果要少得多,有时甚至没有结果。以下是两个查询:

代码语言:javascript
复制
SELECT * FROM statistics WHERE source = 'toutiao' AND timespan = '3';
SELECT * FROM statistics WHERE source = 'toutiao' AND timespan = '3' AND text = '{ sort: {fields: [{field: "speed", reverse: true}]}}';.

我使用这个定制的cassandra索引https://github.com/Stratio/cassandra-lucene-index

编辑:

我使用Cassandra 2.2.4.1 cassandra-lucene-index 2.2.4

“‘text”是我构建索引的表列。

我的索引创建查询是:

代码语言:javascript
复制
CREATE CUSTOM INDEX statistics_text_idx ON toutiao.statistics (text) USING 'com.stratio.cassandra.lucene.Index' WITH OPTIONS = {'schema': '{
            fields : {
                title: {
                                    type : "text", analyzer : "english"},
                                    category : {type:"string"},
                    genre : {type:"string"},
                    speed  : {type : "integer",sorted : true}
            }
    }', '
            refresh_seconds': '1'};

表创建查询:

代码语言:javascript
复制
DROP TABLE IF EXISTS statistics;

CREATE TABLE statistics (
source text,
timespan text,
id text,
title text,
thumbnail text,
url text,
text text,
created_at timestamp,
category text,
category2 text,
genre text,
author text,
reads int,
likes int,
comments int,
shares int,
speed int,
PRIMARY KEY (source, timespan, id)
)WITH CLUSTERING ORDER BY (timespan DESC) AND caching = '{"keys":"ALL", "rows_per_partition":"ALL"}';

这是我的数据插入程序:

代码语言:javascript
复制
cluster = Cluster(['localhost'])
session_statis = cluster.connect(keyspace)
session_statis.execute('INSERT INTO tablename(col1,col2,col3,col4,col5,col6,col7,col8,col9,col10,col11,col12,col13,col14,col15) values(%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)', (value1,value2,value3,value4,value5,value6,value7,value8,value9,value10,value11,value12,value13,value14,value15))

谢谢你的帮助!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-01-22 16:34:39

Doanduyhai已经在你的另一条线上回答了这个问题,但我想我也应该加入进来。

当涉及到对Cassandra数据的“搜索”时,您有几个选项,这取决于一些东西,比如SLA的、易用性的、免费的VS。Stratio绝对是一个有趣的开源选项--不知道您的问题是从哪里来的,但是我还没有在生产中看到过它(我确信人们正在使用它,只是还没有看到)

至于替代方案,您实际上有两种选择:

代码语言:javascript
复制
Option 1 - roll your own established Lucene based search API. 

您在这里的选择是ElasticSearch或Solr。两者都有各自的优势和开放源码选项。这里的挑战是,您必须管理单独的集群和来自Cassandra的ETL数据或双重写入。在这个场景中,您有更多的灵活性,因为如果您有很多系统,这可以作为一个通用的搜索集群。这确实意味着您自己管理了失败场景(比如拆分的大脑问题),并且丢失了CQL中的Lucene集成。

代码语言:javascript
复制
Option 2 - Go the enterprise route (disclaimer: I work for DataStax)

DataStax企业有一个很好的集成搜索选项。Solr与Cassandra共享相同的JVM,这允许立即对Cassandra数据进行索引并利用Cassandra的可用性。还有一些很酷的查询路由,这恰好使搜索更有效率。见:DSE搜索。这显然是一个付费的选择--尽管在开发中可以免费使用。

票数 2
EN

Stack Overflow用户

发布于 2016-01-27 17:31:00

我想我知道你在做什么,

“text”是构建索引的表列吗?

您可以在这里发布cassandra版本、cassandra索引版本和索引创建查询吗?

(免责声明:我在斯特雷肖工作:)

票数 4
EN

Stack Overflow用户

发布于 2016-02-03 01:28:12

要快速测试查询,请添加Kibana,这是ELK堆栈的一部分,它将生成您要完成的函数,并生成符合您要求的elasticsearch/Lucene代码。您的es将需要匹配任何基巴纳释放你拉下来:最新发布的基巴纳在2015年12月,我必须从es 2到2.1,以匹配目前的基巴纳。因为es现在已经有了2.2的味道,Kibana也可能升级了。ah...just在4.4检查you...Kibana需要ES2.2.所以推出的速度很快。

https://www.elastic.co/downloads/kibana

披露:我的主要是gptext,madlib和plr,但是我喜欢es.) gptext会更像SQL.就像你上面的一样..。

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

https://stackoverflow.com/questions/34939308

复制
相关文章

相似问题

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