Re: Full text search on partial URLs

From: Zev Benjamin <zev-pgsql(at)strangersgate(dot)com>
To: pgsql-general(at)postgresql(dot)org
Subject: Re: Full text search on partial URLs
Date: 2013-11-06 18:53:03
Message-ID: 527A900F.6020103@strangersgate.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

On 11/06/2013 01:47 PM, bricklen wrote:
>
> On Wed, Nov 6, 2013 at 10:45 AM, Zev Benjamin
> <zev-pgsql(at)strangersgate(dot)com <mailto:zev-pgsql(at)strangersgate(dot)com>> wrote:
>
> Hi,
>
> I have Postgres full text search set up for my application and it's
> been working great! However, my users would like their searches to
> turn up parts of URLs. For example, they would like a search for
> "foobar" to turn up a document that contains the string
> "http://example.com/foobar/__blah <http://example.com/foobar/blah>"
> (and similarly for queries like "example" and "blah). With the
> default dictionaries for host, url, and url_path, the search query
> would have to contain the complete host or url path.
>
> What is the best way to accomplish this? Should I be looking at
> building a custom dictionary that breaks down hosts and urls or is
> there something simpler I can do?
>
>
> Have you looked into trigrams?
> http://www.postgresql.org/docs/current/static/pgtrgm.html

I've looked at it in the context of adding fuzzy search. But my
understanding is that doing a fuzzy search here would only work if the
query were a significant fraction of, say, the url path. For example, I
would expect a fuzzy search of "foobar" on "/foobar/x" to return a high
similarity, but a fuzzy search of "foobar" on
"/foobar/some/very/long/path/x" to have a low similarity.

Or are you suggesting using trigrams in a different way?

Zev

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message bricklen 2013-11-06 19:04:07 Re: Full text search on partial URLs
Previous Message bricklen 2013-11-06 18:47:38 Re: Full text search on partial URLs