Iは、(例えば)「B」及び「C」2つ以上のcassandraスライスを効率的に交差させる方法は?
、私はタグ「A」タグ付きの記事を検索できるようにしたい this exampleに示すような投稿とTaggedPostsカラムファミリを使用してい
問題は、私は完全にTaggedPostsをキーAで読み込んで、最初の10個の結果を例で示したように取り出すのではなく、キーBですべてのTaggedPostsと交差しています。これを行うためにあなたのアドバイスをするのはどうですか?
私はTaggedPostsに構造を変更することを考えていた:/交差するよりも、
get TaggedPosts where tag1=A and tag2=B and tag3=C;
ではなく、それははるかに効果的であろうことを確認:と行のキーと
create colmun familty TaggedPosts with ... and column_metadata=[
{column_name: tag1, ..., index_type: KEYS},
{column_name: tag2, ..., index_type: KEYS},
{column_name: tag3, ..., index_type: KEYS},
として投稿のIDを入れてくださいフィルタリングクライアント側
「Aとの投稿」のクエリでは、すべてのhttp://wiki.apache.org/cassandra/APIを取得する方法をThriftで見つけられませんでしたが、CQLで簡単に見えるので、あなたは本当に良いクライアントです。また、AとBのすべての記事を検索してから交差すると、数百万の投稿があればどうなりますか?最初の10個の交差を表示したいですか? –
@ ca11111 ;うまくいけばそれはより多くを助ける。 –
thx TP、あなたのアップデートをWTF-is-a-supercolumnのように更新しました。私は2列の列を作成しました。テキストのヘッダー(タイトル、作成者、日付、データID)はタグであり、data_idはテキスト列ファミリを指していますが、この無制限の100..200の制限でtag = aおよびtag = bをクエリする必要があります。おそらくそれを増やす必要があります私は10交差する場合は、美しさだろうか?カッサンドラは、SQLジョイントの並べ替えを行うことができる場合は、*タグからのタグを=またはタグ= b;)確かにソル、データストアコミュニティ(エンタープライズではない)、thx –