I am sorry, I just re-read your mail and realized  you have already tried
with pg_trgm.



On Wed, Jul 31, 2013 at 7:23 PM, Beena Emerson <memissemer...@gmail.com>wrote:

> On Sat, Jul 27, 2013 at 10:34 PM, Janek Sendrowski <jane...@web.de> wrote:
>
>> Hi Sergey Konoplev,
>>
>> If I'm searching for a sentence like "The tiger is the largest cat
>> species" for example.
>>
>> I can only find the sentences, which include the words "tiger, largest,
>> cat, species", but I also like to have the sentences with only three or
>> even two of these words.
>>
>> Janek
>>
>>
>> --
>> Sent via pgsql-general mailing list (pgsql-general@postgresql.org)
>> To make changes to your subscription:
>> http://www.postgresql.org/mailpref/pgsql-general
>>
>
> Hi,
>
> You may use similarity functions of pg_trgm.
>
> Example:
> =# \d+ test
>                         Table "public.test"
>  Column | Type | Modifiers | Storage  | Stats target | Description
> --------+------+-----------+----------+--------------+-------------
>  col    | text |           | extended |              |
> Indexes:
>     "test_idx" gin (col gin_trgm_ops)
> Has OIDs: no
>
> # SELECT * FROM test;
>                    col
> -----------------------------------------
>  The tiger is the largest cat species
>  The cheetah is the fastest  cat species
>  The peacock is the largest bird species
> (3 rows)
>
> =# SELECT show_limit();
>  show_limit
> ------------
>         0.3
> (1 row)
>
> =# SELECT col, similarity(col, 'The tiger is the largest cat species') AS
> sml
>   FROM test WHERE col % 'The tiger is the largest cat species'
>   ORDER BY sml DESC, col;
>                    col                   |   sml
> -----------------------------------------+----------
>  The tiger is the largest cat species    |        1
>  The peacock is the largest bird species | 0.511111
>  The cheetah is the fastest  cat species | 0.466667
> (3 rows)
>
> =# SELECT set_limit(0.5);
>  set_limit
> -----------
>        0.5
> (1 row)
>
> =# SELECT col, similarity(col, 'The tiger is the largest cat species') AS
> sml
>   FROM test WHERE col % 'The tiger is the largest cat species'
>   ORDER BY sml DESC, col;
>                    col                   |   sml
> -----------------------------------------+----------
>  The tiger is the largest cat species    |        1
>  The peacock is the largest bird species | 0.511111
> (2 rows)
>
> =# SELECT set_limit(0.9);
>  set_limit
> -----------
>        0.9
> (1 row)
>
> =# SELECT col, similarity(col, 'The tiger is the largest cat species') AS
> sml
>   FROM test WHERE col % 'The tiger is the largest cat species'
>   ORDER BY sml DESC, col;
>                  col                  | sml
> --------------------------------------+-----
>  The tiger is the largest cat species |   1
> (1 row)
>
>
> When you set a higher limit, you get more exact matches.
>
>
> --
> Beena Emerson
>
>


-- 
Beena Emerson

Reply via email to