Re: How to search a string inside a json structure - Mailing list pgsql-general

From Merlin Moncure
Subject Re: How to search a string inside a json structure
Date
Msg-id CAHyXU0yjxuZpNNjbUMghctPFRHyFgJ3iuHM3OtO=kNemFmMRtA@mail.gmail.com
Whole thread Raw
In response to Re: How to search a string inside a json structure  (Vick Khera <vivek@khera.org>)
Responses Re: How to search a string inside a json structure  (Sami Pietilä <sami.pietila@gmail.com>)
Re: How to search a string inside a json structure  (Sami Pietilä <sami.pietila@gmail.com>)
List pgsql-general
On Tue, Nov 3, 2015 at 9:57 AM, Vick Khera <vivek@khera.org> wrote:
>
> On Tue, Nov 3, 2015 at 10:07 AM, Sami Pietilä <sami.pietila@gmail.com>
> wrote:
>>
>> Unfortunately I could not figure out how to select rows which, for
>> example, contain following json: '{"a":"world","c":{"b":"helloworld"}}' by
>> search with "hello" string.
>
> cast the field to a text:
>
> select * from t where myfield::text like '%hello%';

Performance of this will be awful.  Unfortunately, FWICT there is no
way to do partial string matches against json in a indexed way without
some serious elbow grease.  For full key-value matching though you're
good to go.

Do index this operation, the best option today will revolve around the
pg_trgm module.  It can optimize like expressions against text.
Performance of this is a mixed bag although upcoming pg_trgm
enhancements should make it a lot faster.

merlin


pgsql-general by date:

Previous
From: Merlin Moncure
Date:
Subject: Re: Approach to extract top records from table based upon aggregate
Next
From: Tom Lane
Date:
Subject: Re: Drop or alter column under load give ERROR #42804 structure of query does not match function result type: