From: | David Rowley <david(dot)rowley(at)2ndquadrant(dot)com> |
---|---|
To: | Hiroyuki Sato <hiroysato(at)gmail(dot)com> |
Cc: | Jeff Janes <jeff(dot)janes(at)gmail(dot)com>, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, Andreas Kretschmer <andreas(at)a-kretschmer(dot)de>, "pgsql-general(at)postgresql(dot)org" <pgsql-general(at)postgresql(dot)org> |
Subject: | Re: grep -f keyword data query |
Date: | 2015-12-29 21:04:40 |
Message-ID: | CAKJS1f-tAZ9X0_kdDtgPj6YF4AhUFE8V+W9XyVRzX1Vv3HhwSw@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
On 30 December 2015 at 04:21, Hiroyuki Sato <hiroysato(at)gmail(dot)com> wrote:
> 2015年12月29日(火) 4:35 Jeff Janes <jeff(dot)janes(at)gmail(dot)com>:
>
>>
>>
>
>> But, the planner refuses to use this index for your query anyway,
>> because it can't see that the patterns are all left-anchored.
>>
>> Really, your best bet is refactor your url data so it is stored with a
>> url_prefix and url_suffix column. Then you can do exact matching
>> rather than pattern matching.
>>
>
> I see, exact matching faster than pattern matting.
> But I need pattern match in path part
> (ie, http://www.yahoo.com/a/b/c/... )
> I would like to pattern match '/a/b/c' part.
>
If your pattern matching is as simple as that, then why not split the
/a/b/c/ part out as mentioned by Jeff? Alternatively you could just write a
function which splits that out for you and returns it, then index that
function, and then just include a call to that function in the join
condition matching with the equality operator. That'll allow hash and merge
joins to be possible again.
--
David Rowley http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Training & Services
From | Date | Subject | |
---|---|---|---|
Next Message | Michael Nolan | 2015-12-29 21:26:54 | Re: Regex help again (sorry, I am bad at these) |
Previous Message | Christoph Moench-Tegeder | 2015-12-29 20:51:06 | Re: Regex help again (sorry, I am bad at these) |