2016-09-26 3 views
4

は私がP.within(..)、Pを利用しています必要な句を形成するためなどタイタングラフトラバーサルクエリのP.test(V値)はどのように機能しますか?

以内に、私はのように、さまざまな節がありGraphTraversal API、含まれているを使用してチタンクエリを記述する必要があるシナリオに出くわしました.inside(..)、P.test(..)などの述語。トラバーサルインスタンスの実例である

traversal.has("field1", P.within(new String[]{"value1", "value2"})). 
      has("field2", P.test((r1, r2) -> { 
        return ((String)r1)).contains((String)r2)); 
       }, "someVal")); 

以下の私は、タイタンは内部的にこのクエリをどのように評価するかを理解したいですか? メモリ内のすべての頂点を読み込んだ後、すべての述語を評価しますか?

答えて

1

P.withinのような標準的な述部は、できる限り最適化されます(例では、field1を超えるインデックスを使用する場合、Titanが使用します)。一方、カスタム述部は最適化できません。あなたが言うように、Titanはすべての頂点をメモリにロードしてからフィルタ述語を適用します。

関連する問題