OBKV-Tableは、全文インデックスを使用したDMLとクエリに対応しています。テーブルに全文インデックスを作成すると、データの挿入・更新・削除に合わせてインデックスが自動的に更新され、全文検索を実行できます。
サポート範囲
現在のOBKV-Tableクライアントでサポートされている機能範囲は以下の通りです:
- 文字列型とLOB型をサポートします。
- 1つのテーブルに複数の全文インデックスを作成でき、同一列に複数の全文インデックスを作成できます。
- パーティションテーブルをサポートします。
- クエリモードは
NATURAL LANGUAGE MODEです。 - OBKV-Tableクライアントの以下の操作をサポートします:
- 単一操作:PUTはサポートされていません。
- バッチ操作:PUTはサポートされていません。
- OBKV-Tableのグループコミット、TTLなどをサポートします。
使用例
テーブル tbl1 に全文インデックス full_idx1_tbl1 を作成します:
CREATE TABLE IF NOT EXISTS tbl1(
id INT,
c2 INT,
txt text,
PRIMARY KEY (id),
FULLTEXT INDEX full_idx1_tbl1(txt)
);
テーブル tbl1 にデータを挿入します:
MutationResult res = client.insert("tbl1").setRowKey(colVal("id", id))
.addMutateRow(row(colVal("txt", "OceanBase Database is a native, " +
"enterprise-level distributed database developed independently by the OceanBase team")))
.execute();
テーブル tbl1 のデータをクエリします:
// 同期クエリ
QueryResultSet resultSet = client.query(noPartTableName)
.setSearchText("oceanbase")
.indexName("full_idx1_tbl1")
.limit(0,1)
.execute();
// 非同期クエリ
QueryResultSet asyncResultSet = client.query(noPartTableName)
.indexName("full_idx1_tbl1")
.setSearchText("oceanbase")
.limit(0,1)
.asyncExecute();