2017-08-20 7 views
0

inverted index on a date fieldを作成しようとしています。 Couchbaseの管理コンソールで動作しますが、Pythonコードでエラーが発生しています。明らかにPythonで間違っているのですが、Pythonでインデックスを作成して関数を使用した例は見つかりませんでした。ここで働いてN1QLである:ここではPythonでインデックス作成でCouchbase関数を使用するにはどうすればよいですか?

CREATE INDEX `mytabenter code herele_date` ON `mytable`(-TONUMBER(`date`)); 

は壊れたPythonのコードは次のとおりです。 ":名 'TONUMBER' が定義されていませんNameError"

cb = Bucket('couchbase://localhost/mytable', password='passw0rd') 
cb.bucket_manager().create_n1ql_index('mytable_date_desc', fields=[-TONUMBER('date_desc')], defer=True, ignore_exists=True) 

機能-TONUMBERはエラー "未解決の参照" /を生成します。

このようなインデックスを関数で作成する正しい方法は何ですか?

答えて

1

TONUMBERは、Python SDKではなくN1QLの定義済み関数であるため、エスケープする必要があります。

manager.create_n1ql_index( 'mytable_date_desc', fields=['(-TONUMBER(`date`))'], defer=True, ignore_exists=True)

+0

素晴らしい!できます。とても簡単!本当にありがとう! – uzla

0

.create_n1ql_index()が便宜上あり、必ずしも完全なAPIであることを次の例では、動作するはずです。最も単純なケースを扱うことができますが、より複雑なものはクエリAPIを通じて文字列によってうまく処理されます。

関連する問題