Erlang 错误请求:不支持具有第2个索引的ORDER BY
我需要从包含二级索引的表中获取记录。但我得到“错误请求:不支持具有二级索引的ORDER BY”。错误。我知道cassandra服务器中的CQL3不支持此功能。如何实现此功能 下面是我的表结构和索引创建和选择查询 1.要在cassandra中创建表:Erlang 错误请求:不支持具有第2个索引的ORDER BY,erlang,cassandra,ejabberd,cql3,Erlang,Cassandra,Ejabberd,Cql3,我需要从包含二级索引的表中获取记录。但我得到“错误请求:不支持具有二级索引的ORDER BY”。错误。我知道cassandra服务器中的CQL3不支持此功能。如何实现此功能 下面是我的表结构和索引创建和选择查询 1.要在cassandra中创建表: CREATE COLUMNFAMILY message_log(conversationid bigint,starttime timestamp,flag boolean,user_id text,expert_id text,conv_i
CREATE COLUMNFAMILY message_log(conversationid bigint,starttime timestamp,flag boolean,user_id text,expert_id text,conv_initiator_id text,message text,PRIMARY KEY(conversationid,starttime)) ;
2.要创建索引,请执行以下操作:
在消息日志(conv_initiator_id)上创建索引消息_log_idx_conv_initiator_id
3.要从表中获取记录,请执行以下操作:
选择会话id、用户id、专家id、消息日志中的消息,其中conv\u initiator\u id='1manoj@1921.168.1.64'AND flag=starttime ASC允许筛选的真实顺序
I get "Bad Request: ORDER BY with 2ndary indexes is not supported.", when I run 3rd query.
模块的Erlang部分是:
通过用户ID(从)->
你问题中的Erlang部分在哪里?
I get "Bad Request: ORDER BY with 2ndary indexes is not supported.", when I run 3rd query.
{ok, Pid} = seestar_session:start_link("localhost", 9042),
QryUse = "USE mykeyspace;",
case seestar_session:perform(Pid, QryUse, one) of
{ok,_Result} ->
FromJid = From#jid.luser++"@"++From#jid.lserver,
Flag = true,
QueryFinal=lists:concat(["select conversationid,user_id,expert_id,message from message_log
where conv_initiator_id = ","'",FromJid ,"'", " AND flag =",Flag," ORDER BY starttime ASC"," ALLOW FILTERING"]),
case seestar_session:perform(Pid,QueryFinal,one) of
{ok,_RecordList} ->
{rows,_ColumnNames,_Records} = _RecordList,
?INFO_MSG("selecting records from database using userid ~p",[_Records]),
_Records;
{error,_Error} ->
?INFO_MSG("Error occured while selecting records from database using userid~p",[_Error])
end;
{error,_Error} ->
?INFO_MSG(" Error occured while executing use query ~p",[_Error])
end.