0

こんにちは私は自分のスキーマでスキャンを無効にしました。allow_scanが無効になることなく、Datastax DSE 5.0.x Graphからデータのサブセットを照会できないのはなぜですか?

私はそれらのようなクエリが許可されないことを知っている:

g.V() 

g.V().hasLabel("User") 

org.apache.tinkerpop.gremlin.driver.exception.ResponseException: 問合せ句に答えるために、インデックスが見つかりませんでしたし、 graph.allow_scanは 無効になっています:

g.V().limit(2) 

g.V().hasLabel("User").limit(2) 
012:

私はなぜさえも疑問に思います

同じ例外がスローされる原因になります。彼らは、クエリを有界であると彼らは確かに完全なカサンドラのテーブルスキャンが発生することはありませんので、これはイライラ..です

おかげ

答えて

2

(任意のすべてであれば)スキャンで許されるべきクエリの種類について継続的な議論があります無効にする。今のところ、ルールは単純です:最初のステップが索引ルックアップでない場合は、完全スキャンとみなされます。

それはそれを言うのは簡単です:

g.V().hasLabel("user").limit(10) 
g.V().hasLabel("user").limit(100) 
g.V().hasLabel("user").limit(1000) 
g.V().hasLabel("user").limit(10000) 
g.V().hasLabel("user").limit(100000) 

:例えば、許容されるべきである...

g.V().hasLabel("user").limit(2) 

が、それはフルスキャン、その後、どのようなこれらについてではないと考えられる場合私たちはどこに線を引くのですか?私はあなたがこの質問に答えることを期待していません、ちょうどそれが最初に思われるように簡単ではないことを示したいと思います。

+0

私はこの答えを期待していましたが、実際にはプロダクションでallow_scanを使って決して実行しないと言っていますが、たとえば、システムに入った最後の100人のユーザーを言う必要がある場合など、私は何をすべきか..?私は、hasLabel( "user")を使ってインデックスを使うことを少なくともbtwは考えていましたが、今はそれが全体のcassandraテーブルだと理解しています。それは完全なスキャンの場合に例外をスローすることは理にかなっています..それは質問です..ログメッセージによって通知され、例外を抑制する方法があるはずです.. –

関連する問題