Couchbase Liteの機能全般について、以下の記事も合わせてご参照ください。
概要
インデックスを作成すると、クエリのパフォーマンスを高速化できます。クエリは、インデックスを利用して、ドキュメントのセットを絞り込むことができれば、より迅速に結果を返すことができます。
新しいインデックスの作成
次のデータモデルに含まれるtype
、name
プロパティを指定して新しいインデックスを作成します。
データモデル
{
"_id": "hotel123",
"type": "hotel",
"name": "Apple Droid"
}
インデックスを作成するコードは次のようになります。
Android
database.createIndex(
"TypeNameIndex",
IndexBuilder.valueIndex(
ValueIndexItem.property("type"),
ValueIndexItem.property("name")));
Swift
let index = IndexBuilder.valueIndex(items:
ValueIndexItem.expression(Expression.property("type")),
ValueIndexItem.expression(Expression.property("name")))
try database.createIndex(index, withName: "TypeNameIndex")
その他のメソッド
com.couchbase.lite.Databaseクラスには、下記の様なインデックス関連のメソッドがあります。
- void createIndex(String name, Index index)
- void deleteIndex(String name)
- List getIndexes()
留意点
インデックスを計画するときは、インデックスによってクエリが高速化される一方で、次のことも行われる可能性があることに注意する必要があります。
-
ドキュメントが更新されるたびに各インデックスを更新する必要があるため、書き込みを少し遅くします
-
Couchbase Liteデータベースを少し大きくします。
-
インデックスが多すぎると、パフォーマンスが低下する可能性があります。最適なパフォーマンスは、クエリに合わせて適切なインデックスを設計および作成するかどうかに依存します。
関連情報