Re: Full text search randomly not working for short prefixes?

From: Andreas Joseph Krogh <andreas(at)visena(dot)com>
To: pgsql-general(at)postgresql(dot)org
Subject: Re: Full text search randomly not working for short prefixes?
Date: 2016-12-02 17:05:59
Message-ID: VisenaEmail.78.132a01af48ad9505.158c07e1c23@tc7-visena
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

På fredag 02. desember 2016 kl. 16:33:12, skrev Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us
<mailto:tgl(at)sss(dot)pgh(dot)pa(dot)us>>:
cen <imbacen(at)gmail(dot)com> writes:
> Something funny going on with my full text search.. and I have no idea what.

The way to debug this sort of thing is generally to look at what tsquery
you're actually getting.  I get

regression=# select to_tsquery(unaccent('a:*'));
NOTICE:  text-search query contains only stop words or doesn't contain
lexemes, ignored
 to_tsquery
------------
 
(1 row)

regression=# select to_tsquery(unaccent('an:*'));
NOTICE:  text-search query contains only stop words or doesn't contain
lexemes, ignored
 to_tsquery
------------
 
(1 row)

regression=# select to_tsquery(unaccent('ana:*'));
 to_tsquery
------------
 'ana':*
(1 row)

Of course, only the last is going to match 'ana'.

So you need to use a text search configuration in which a/an are
not stop words.  Or possibly you could cast the unaccent result
directly to tsquery rather than passing it through to_tsquery(),
though likely that would just have a different set of failure modes
with queries where you do wish stemming would occur.

The problem with "no" seems to be the same.
 
One can always specify 'simple' as the config, eliminating any "stop-wprd
smartness":
 
andreak=> select to_tsquery('simple', 'a:*');  
to_tsquery  
------------
'a':*
(1 row)

 
-- Andreas Joseph Krogh

In response to

Browse pgsql-general by date

  From Date Subject
Next Message Alexis Woo 2016-12-02 17:25:07 Avoid sorting when doing an array_agg
Previous Message cen 2016-12-02 15:49:12 Re: Full text search randomly not working for short prefixes?