2012-08-15 4 views
1

cassandra-1.1.2. 스키마가 이와 같습니다."SELECT ... IN ..."연산자가 작동하지 않습니다.

 

    CREATE TABLE contacts (
     userid text, 
     contactid text, 
     groups text, 
     name text, 
     PRIMARY KEY (userid, contactid) 
    ) 

모두 포함 된 날짜입니다.

 

    cqlsh:contactks> select * from contacts where contactid in ('a11', 'a21'); 
    cqlsh:contactks> 

반환 값 없음! :

 

    cqlsh:contactks> select * from contacts; 
    userid | contactid | groups | name 
    --------+-----------+--------+------ 
      a |  a11 | a13 | a12 
      a |  a21 | a23 | a22 
      a |  a31 | a33 | a32 
      b |  b11 | b13 | b12 

그래서 나는이 같은 쿼리를 만들 "contactid"를 파티션 키로 사용하지 않고 "IN"옵션을 사용하여 값을 가져 오는 방법은 무엇입니까? 고마워요.

+1

어떤 데이터베이스를 사용하고 있습니까? – Oded

+0

죄송합니다, thand 데이터베이스로 cassandra-1.1.2를 사용합니다. – user1600104

답변

1

contactidsecondary index을 구현해야 where 절에서 검색 할 수 있다고 생각합니다.

+0

하지만 "CREATE INDEX ON contacts (contactid);"를 실행할 수 없습니다. " "잘못된 요청 : 보조 PRIMARY KEY가있는 테이블에서 보조 인덱스가 아직 지원되지 않음" – user1600104

+0

@ user1600104이 문제는 알려진 문제입니다. http://mail-archives.apache.org/mod_mbox/cassandra-user/201206.mbox/%[email protected].com%3E 및 https://issues.apache.org/jira/browse/를 참조하십시오. CASSANDRA-3680 – StuartLC

+0

그래서 하나의 프라이 머리 키로 테이블을 만들고 ... "contactid" – user1600104

관련 문제