Re: Indexing on JSONB field not working

Zhihong Zhang <[email protected]> Fri, 20 Dec 2019 19:39:28 -0500
Newsgroups gmane.comp.db.postgresql.bugs
Message-ID <[email protected]>
A few clarifications,

1. The index is very effective. If I treat it as text, the index works. With index, the result returns in 1 second. Otherwise, it’s 5 minutes.
2. Removing limit doesn’t change the behavior.
3. I ran Analyze multiple times after indexing.

Zhihong


> On Dec 20, 2019, at 5:57 PM, Jeff Janes <[email protected]> wrote:
> 
> On Fri, Dec 20, 2019 at 5:12 PM Zhihong Zhang <[email protected] <mailto:[email protected]>> wrote:
> I have an index on JSONB fields like this,
> 
>  
> 
> CREATE INDEX float_number_index_path2
> 
>     ON public.assets USING btree
> 
>     (((_doc #> '{floatValue}'::text[])::double precision) ASC NULLS LAST)
> 
>     TABLESPACE pg_default;
> 
>  
> 
> However query doesn’t use it,
> 
> 
> Did you analyze the table after building the index?  Expression indexes have their own statistics, but they don't get populated until the table is analyzed.
> 
> Cheers,
> 
> Jeff