Coucbbase Index 생성하기
Primary index 생성
버킷을 만들고 쿼리(n1ql) 을 사용하려면, Primary index를 생성해줘야 한다.
https://docs.couchbase.com/server/current/n1ql/n1ql-language-reference/createprimaryindex.html
format
CREATE PRIMARY INDEX [index_name]
ON named_keyspace_ref
[ USING GSI ]
[ WITH {"nodes": ["node_name"], "defer_build":true|false}, "num_replica": num_replica_num } ];
example
{“defer_build”:true} : 인덱스 생성을 지연 시켜서, 인덱스 생성 부하를 막는다. 따라서, 생성하려는 인덱스 쿼리를 모두 만들고 미리 실행시킨다.
CREATE PRIMARY INDEX `temp-index` ON `temp` USING GSI WITH {"defer_build":true};
CREATE PRIMARY INDEX `temp-log-index` ON `temp-log` USING GSI WITH {"defer_build":true};
생성 확인
SELECT * FROM system:indexes WHERE name="abuse-blacklist-index";
생성 시작
클러스터가 여유로운 시간에 인덱스 생성 시작
BUILD INDEX ON `temp`(`temp-index`) USING GSI;
BUILD INDEX ON `temp-log`(`temp-log-index`) USING GSI;
Secondary index 생성
Document 에 포함된 field 를 추가해서 index 생성
date, type field 로 index 생성
CREATE INDEX `temp-log-date-index` ON `temp-log`(date) USING GSI WITH {"defer_build":true};
CREATE INDEX `temp-log-date-type-index` ON `temp-log`(date, type) USING GSI WITH {"defer_build":true};
BUILD INDEX ON `temp-log`(`temp-log-date-index`) USING GSI;
BUILD INDEX ON `temp-log`(`temp-log-date-type-index`) USING GSI;