Thread: small bug in hlCover

small bug in hlCover

From
Sushant Sinha
Date:
I think there is a slight bug in hlCover function in wparser_def.c

If there is only one query item and that is the first word in the text,
then hlCover does not returns any cover. This is evident in this example
when ts_headline only generates the min_words:

testdb=# select ts_headline('1 2 3 4 5 6 7 8 9 10','1'::tsquery,
'MinWords=5');
   ts_headline
------------------
 <b>1</b> 2 3 4 5
(1 row)

The problem is that *q is initialized to 0 which is a legitimate value
for a cover. So I have attached a patch that fixes it and after applying
the patch here is the result.

testdb=# select ts_headline('1 2 3 4 5 6 7 8 9 10','1'::tsquery,
'MinWords=5');
         ts_headline
-----------------------------
 <b>1</b> 2 3 4 5 6 7 8 9 10
(1 row)

-Sushant.

Attachment

Re: small bug in hlCover

From
Sushant Sinha
Date:
Has any one noticed this?

-Sushant.

On Wed, 2008-07-16 at 23:01 -0400, Sushant Sinha wrote:
> I think there is a slight bug in hlCover function in wparser_def.c
> 
> If there is only one query item and that is the first word in the text,
> then hlCover does not returns any cover. This is evident in this example
> when ts_headline only generates the min_words:
> 
> testdb=# select ts_headline('1 2 3 4 5 6 7 8 9 10','1'::tsquery,
> 'MinWords=5');
>    ts_headline    
> ------------------
>  <b>1</b> 2 3 4 5
> (1 row)
> 
> The problem is that *q is initialized to 0 which is a legitimate value
> for a cover. So I have attached a patch that fixes it and after applying
> the patch here is the result.
> 
> testdb=# select ts_headline('1 2 3 4 5 6 7 8 9 10','1'::tsquery,
> 'MinWords=5');
>          ts_headline         
> -----------------------------
>  <b>1</b> 2 3 4 5 6 7 8 9 10
> (1 row)
> 
> -Sushant.



Re: small bug in hlCover

From
Sushant Sinha
Date:
On Mon, 2008-08-04 at 00:36 -0300, Euler Taveira de Oliveira wrote:
> Sushant Sinha escreveu:
> > I think there is a slight bug in hlCover function in wparser_def.c
> > 
> The bug is not in the hlCover. In prsd_headline, if we didn't find a 
> suitable bestlen (i.e. >= 0), than it includes up to document length or 
> *maxWords* (here is the bug). I'm attaching a small patch that fixes it 
> and some comment typos. Please apply it to 8_3_STABLE too.

Well hlCover purpose is to find a cover and for the document  '1 2 3 4 5
6 7 8 9 10' and the query '1'::tsquery, a cover exists. So it should
point it out.

On my source I see that prsd_headline marks only min_words which seems
like the right thing to do.

-Sushant.

> 
> euler=# select ts_headline('1 2 3 4 5 6 7 8 9 10','1'::tsquery, 
> 'MinWords=5');
>           ts_headline
> -----------------------------
>   <b>1</b> 2 3 4 5 6 7 8 9 10
> (1 registro)
> 
> euler=# select ts_headline('1 2 3 4 5 6 7 8 9 10','1'::tsquery);
>           ts_headline
> -----------------------------
>   <b>1</b> 2 3 4 5 6 7 8 9 10
> (1 registro)
> 
> 



Re: small bug in hlCover

From
Teodor Sigaev
Date:
Thank you, patch applied.

Sushant Sinha wrote:
> Has any one noticed this?
> 
> -Sushant.
> 
> On Wed, 2008-07-16 at 23:01 -0400, Sushant Sinha wrote:
>> I think there is a slight bug in hlCover function in wparser_def.c
>>
>> If there is only one query item and that is the first word in the text,
>> then hlCover does not returns any cover. This is evident in this example
>> when ts_headline only generates the min_words:
>>
>> testdb=# select ts_headline('1 2 3 4 5 6 7 8 9 10','1'::tsquery,
>> 'MinWords=5');
>>    ts_headline    
>> ------------------
>>  <b>1</b> 2 3 4 5
>> (1 row)
>>
>> The problem is that *q is initialized to 0 which is a legitimate value
>> for a cover. So I have attached a patch that fixes it and after applying
>> the patch here is the result.
>>
>> testdb=# select ts_headline('1 2 3 4 5 6 7 8 9 10','1'::tsquery,
>> 'MinWords=5');
>>          ts_headline         
>> -----------------------------
>>  <b>1</b> 2 3 4 5 6 7 8 9 10
>> (1 row)
>>
>> -Sushant.
> 
> 

-- 
Teodor Sigaev                                   E-mail: teodor@sigaev.ru
  WWW: http://www.sigaev.ru/