diff options
-rw-r--r-- | myisam/ft_boolean_search.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/myisam/ft_boolean_search.c b/myisam/ft_boolean_search.c index ea9a8ab15e0..423f97d8753 100644 --- a/myisam/ft_boolean_search.c +++ b/myisam/ft_boolean_search.c @@ -226,11 +226,12 @@ FT_INFO * ft_init_boolean_search(MI_INFO *info, uint keynr, byte *query, return ftb; } -void _ftb_climb_the_tree(FTB_WORD *ftbw, my_off_t curdoc) +void _ftb_climb_the_tree(FTB_WORD *ftbw) { FTB_EXPR *ftbe; float weight=ftbw->weight; int yn=ftbw->yesno; + my_off_t curdoc=ftbw->docid; for (ftbe=ftbw->up; ftbe; ftbe=ftbe->up) { @@ -303,7 +304,7 @@ int ft_boolean_read_next(FT_INFO *ftb, char *record) { while (curdoc==(ftbw=(FTB_WORD *)queue_top(& ftb->queue))->docid) { - _ftb_climb_the_tree(ftbw, curdoc); + _ftb_climb_the_tree(ftbw); /* update queue */ r=_mi_search(info, keyinfo, (uchar*) ftbw->word, USE_WHOLE_KEY, @@ -396,12 +397,13 @@ float ft_boolean_find_relevance(FT_INFO *ftb, byte *record, uint length) for (i=1; i<=ftb->queue.elements; i++) { ftbw=(FTB_WORD *)(ftb->queue.root[i]); + ftbw->docid=docid; ptree.custom_arg=(void *)(ftbw->trunc); word.pos=ftbw->word+1; word.len=ftbw->len-1; if (tree_search(& ptree, & word)) { /* found! */ - _ftb_climb_the_tree(ftbw, docid); + _ftb_climb_the_tree(ftbw); } else { /* not found! */ |