From: | Heikki Linnakangas <heikki(dot)linnakangas(at)enterprisedb(dot)com> |
---|---|
To: | Sushant Sinha <sushant354(at)gmail(dot)com> |
Cc: | Alvaro Herrera <alvherre(at)commandprompt(dot)com>, pgsql-hackers(at)postgresql(dot)org |
Subject: | Re: text search patch status update? |
Date: | 2008-09-17 10:32:29 |
Message-ID: | 48D0DCBD.7030904@enterprisedb.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
Sushant Sinha wrote:
> Patch #2. I think this is a straigt forward bug fix.
Yes, I think you're right. In hlCover(), *q is 0 when the only match is
the first item in the text, and we shouldn't bail out with "return
false" in that case.
But there seems to be something else going on here as well:
postgres=# select ts_headline('1 2 3 4 5', '2'::tsquery, 'MinWords=2,
MaxWords=3');
ts_headline
--------------
<b>2</b> 3 4
(1 row)
postgres=# select ts_headline('aaa1 aaa2 aaa3 aaa4
aaa5','aaa2'::tsquery, 'MinWords=2, MaxWords=3');
ts_headline
------------------
<b>aaa2</b> aaa3
(1 row)
In the first example, you get three words, and in the 2nd, just two. It
must be because of the default ShortWord setting of 3. Also, if only the
last word matches, and it's a "short word", you get the whole text:
postgres=# select ts_headline('1 2 3 4 5','5'::tsquery, 'MinWords=2,
MaxWords=3');
ts_headline
------------------
1 2 3 4 <b>5</b>
(1 row)
--
Heikki Linnakangas
EnterpriseDB http://www.enterprisedb.com
From | Date | Subject | |
---|---|---|---|
Next Message | Andrew Chernow | 2008-09-17 10:45:18 | Re: [PATCHES] libpq events patch (with sgml docs) |
Previous Message | Pavel Stehule | 2008-09-17 10:29:04 | Re: Common Table Expressions (WITH RECURSIVE) patch |