어떻게 하나 쿼리 postgres 배열을 사용하여 진 index?

나는 postgresql 배열 열과 함께 진 index:

CREATE TABLE things (
    id integer NOT NULL,
    tags character varying(255)[]
);

CREATE INDEX index_things_on_tags ON things USING gin (tags);

수있는 몇 가지 방법을 확인한 존재의 요소에 열을 사용하여 다양한 배열 연산자입니다. 여기에는 것've seen:

1.선택하시는'블루'=어떤(태그) 1.select*from 것들을 어디로그<@'{"블루"}' 1.선택하시는&#39;{"블루","황"}&#39;&&태그

에 postgres9.3:

이 첫 번째 중 하나를 사용하여 진 index? I'm 확 두 번째 것을 사용하여 인덱스입니다. 그러나,그것은 다릅니다. 그't 용을 확인하는 경우 블루 태그 중 하나,그것을 필요로 지정한 정확한 배열입니다. 방법은 없을 만들의 스타일 구문에서 2 달성하기 위해 무엇 1 달성하는 것입? *에서,세 번째 내가 원하는 어느 행이 있는 어떤 하나의 파란색 또는 노란색이다. 이 쿼리를 사용하여 진 index? 하지 않을 경우,이렇게 하려면 어떻게 해야 합니까 쿼리 인덱스가?

질문에 대한 의견 (2)
해결책

왜 테스트 및십니까?

regress=> SET enable_seqscan  = off;
SET

regress=> explain select * from things where 'blue' = ANY (tags);
                                QUERY PLAN                                 
---------------------------------------------------------------------------
 Seq Scan on things  (cost=10000000000.00..10000000037.67 rows=6 width=36)
   Filter: ('blue'::text = ANY ((tags)::text[]))
(2 rows)

regress=> explain select * from things where tags   Bitmap Index Scan on index_things_on_tags  (cost=0.00..12.09 rows=12 width=0)
         Index Cond: ('{blue,yellow}'::character varying[] && tags)
(4 rows)

그래서 Pg 사용한 공로를 인정받아&&<@쿼리,하지만=어떤(...).

나는'm sure it'd 능을 가르치 Pg 변환x=어떤(y)ARRAY[x]@>y,그't 니다.

What2 가 정확히 무슨 말을 당하고 싶습니다. 을 테스트하면"블루"하나의 태그가 있습니다. It's 지 않는 동등성 테스트,그's 멤버 테스트.

해설 (4)