私は、couchbase を使用して翻訳を保存するシステムを開発しています。
バケットには、次のような約 15,000 のエントリがあります。
{
"classifications": [
{
"documentPath": "Test Vendor/Test Project/Ordered",
"position": 1
}
],
"id": "message-Test Vendor/Test Project:first",
"key": "first",
"projectId": "project-Test Vendor/Test Project",
"translations": {
"en-US": [
{
"default": {
"owner": "414d6352-c26b-493e-835e-3f0cf37f1f3c",
"text": "first"
}
}
]
},
"type": "message",
"vendorId": "vendor-Test Vendor"
},
そして、例として、「テストベンダー/テストプロジェクト/注文済み」の「documentPath」で分類されたすべてのメッセージを見つけたいと思います。
私はこのクエリを使用します:
SELECT message.*
FROM couchlate message UNNEST message.classifications classification
WHERE classification.documentPath = "Test Vendor/Test Project/Ordered"
AND message.type="message"
ORDER BY classification.position
しかし、クエリの実行に 2 秒かかることに非常に驚いています。
クエリ実行プランを見ると、couchbase がすべてのメッセージをループしてから、"documentPath" でフィルタリングしているようです。
最初に「documentPath」をフィルタリングして(実際にはクエリに一致する documentPath が 2 つしかないため)、メッセージを見つけたいと思います。
「分類」のインデックスを作成しようとしましたが、何も変わりませんでした。
インデックスの設定に何か問題がありますか?それとも、データを別の方法で構造化して迅速に結果を取得する必要がありますか?
それが問題なら、私はcouchbase 4.5ベータを使用しています。