[postgresql] Postgres에서 JSON 필드에 인덱스를 만드는 방법은 무엇입니까?

PostgreSQL 9.3 베타 2 (?)에서 JSON 필드에 인덱스를 생성하려면 어떻게해야합니까? 사용 된 ->연산자를 사용 하여 시도했지만 hstore다음 오류가 발생했습니다.

 CREATE TABLE publishers(id INT, info JSON);
 CREATE INDEX ON publishers((info->'name'));

오류 : json 데이터 유형에 액세스 방법 “btree”에 대한 기본 연산자 클래스가 없습니다. 힌트 : 인덱스에 대한 연산자 클래스를 지정하거나 데이터 유형에 대한 기본 연산자 클래스를 정의해야합니다.



답변

녹이다:

CREATE TABLE publishers(id INT, info JSON);
CREATE INDEX ON publishers((info->>'name'));

주석에서 언급했듯이 여기에 미묘한 차이점 ->>->. 전자는 값을 텍스트로, 후자는 JSON 객체로 반환합니다.


답변