mirror of
https://github.com/MariaDB/server.git
synced 2025-01-18 04:53:01 +01:00
ftb +(+(many -parens)) bug fixed
This commit is contained in:
parent
429a165995
commit
bcd14123bc
3 changed files with 12 additions and 4 deletions
|
@ -55,8 +55,9 @@ static double _nwghts[11]=
|
|||
static double *nwghts=_nwghts+5; /* nwghts[i] = -0.5*1.5**i */
|
||||
|
||||
#define FTB_FLAG_TRUNC 1 /* MUST be 1 */
|
||||
#define FTB_FLAG_YES 2 /* These two - YES and NO */
|
||||
#define FTB_FLAG_NO 4 /* should NEVER be set both */
|
||||
#define FTB_FLAG_YES 2 /* no two from these three */
|
||||
#define FTB_FLAG_NO 4 /* YES, NO, WONLY */
|
||||
#define FTB_FLAG_WONLY 8 /* should be ever set both */
|
||||
|
||||
typedef struct st_ftb_expr FTB_EXPR;
|
||||
struct st_ftb_expr
|
||||
|
@ -444,7 +445,8 @@ static void _ftb_climb_the_tree(FTB *ftb, FTB_WORD *ftbw, FT_SEG_ITERATOR *ftsi_
|
|||
ftbe->cur_weight += weight;
|
||||
if (ftbe->yesses < ythresh)
|
||||
break;
|
||||
yn= (ftbe->yesses++ == ythresh) ? ftbe->flags : 0 ;
|
||||
if (!(yn & FTB_FLAG_WONLY))
|
||||
yn= (ftbe->yesses++ == ythresh) ? ftbe->flags : FTB_FLAG_WONLY ;
|
||||
weight*= ftbe->weight;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -117,6 +117,10 @@ MySQL has now support for full-text search
|
|||
select * from t1 where MATCH a,b AGAINST ('"text i"' IN BOOLEAN MODE);
|
||||
a b
|
||||
Full-text indexes are called collections
|
||||
select * from t1 where MATCH a,b AGAINST ('+(support collections) +foobar*' IN BOOLEAN MODE);
|
||||
a b
|
||||
select * from t1 where MATCH a,b AGAINST ('+(+(support collections)) +foobar*' IN BOOLEAN MODE);
|
||||
a b
|
||||
select * from t1 where MATCH a AGAINST ("search" IN BOOLEAN MODE);
|
||||
a b
|
||||
Full-text search in MySQL implements vector space model
|
||||
|
|
|
@ -18,7 +18,6 @@ select * from t1 where MATCH(a,b) AGAINST ("collections");
|
|||
select * from t1 where MATCH(a,b) AGAINST ("indexes");
|
||||
select * from t1 where MATCH(a,b) AGAINST ("indexes collections");
|
||||
|
||||
|
||||
# add_ft_keys() tests
|
||||
|
||||
explain select * from t1 where MATCH(a,b) AGAINST ("collections");
|
||||
|
@ -54,6 +53,9 @@ select * from t1 where MATCH a,b AGAINST ('"text search" -"now support"' IN BOOL
|
|||
select * from t1 where MATCH a,b AGAINST ('"text search" +"now support"' IN BOOLEAN MODE);
|
||||
select * from t1 where MATCH a,b AGAINST ('"text i"' IN BOOLEAN MODE);
|
||||
|
||||
select * from t1 where MATCH a,b AGAINST ('+(support collections) +foobar*' IN BOOLEAN MODE);
|
||||
select * from t1 where MATCH a,b AGAINST ('+(+(support collections)) +foobar*' IN BOOLEAN MODE);
|
||||
|
||||
# boolean w/o index:
|
||||
|
||||
select * from t1 where MATCH a AGAINST ("search" IN BOOLEAN MODE);
|
||||
|
|
Loading…
Reference in a new issue