2017-07-01 19 views
6

Azure Cosmos Graph DBでcontainsを使用してVertexプロパティを検索することはできますか?Azure Cosmos DBグラフワイルドカード検索

たとえば、'Jr'という名前の人をすべて探していますか? within('')機能のみ'Jr'に正確に等しい値をフィルタするよう

g.V().hasLabel('person').has('name',within('Jr')).values('name') 

は思えます。私は含まれているを探しています。 理想的には大文字と小文字を区別しません。

+1

通常、Tinkerpop/gremlinを使用すると、コスモスDBグラフはまだありませんが、 'gv()。hasLabel( 'person).filter {it.getProperty(' name ')。toLowerCase()。(' jr ')}クロージャをサポートします。閉鎖が利用可能になると、このスレッドに応答します。 –

+0

Titanを使用しているときにtextContainsを使用していましたが、Cosmos g.V()。hasLabel( 'person')。has( 'name'、textContains( 'Jr')) –

答えて

2

現時点では、テキストマッチング機能はCosmosDBで使用できません。そして、あなたはSQLとしてクエリを記述して使用する必要があるだろう

function userDefinedFunction(input, pattern) { return input.match(pattern) !== null; }; 

を:しかし、私は、Javascriptの試合()関数を使用してUDF(ユーザー定義関数)を使用して、ワイルドカード検索機能を実装することができましたあなたが定義したUDFは(下の例では、あなたが「REGEX」

SELECT * FROM c where(udf.REGEX(c.name[0]._value, '.*Jr.*') and c.label='person') 

機能と呼ばれると仮定し解決策が受け入れ可能であるかない場合は、お使いの遅延とコストの観点に基づいて決定する必要があるので、パフォーマンスが理想からかけ離れになります。

関連する問題