2

In order to give different columns different weights,of course one can use:

select   ... 
from     table_name 
where    match(column1,column2...columnn) against('+test..') 
order by weight1*(match (column1) against('test..')) 
       + weight2*(match (column2) against('+test..')) 
       + ...
       + weightn*(match (column1) against('test..'))

But when the result size is big,the above order by can be extremely costive!

Is there any more efficient way to do this?

John Saunders
  • 157,405
  • 24
  • 229
  • 388
omg
  • 123,990
  • 135
  • 275
  • 341

1 Answers1

1

use thinking sphinx, http://freelancing-god.github.com/ts/en/

MatthewFord
  • 2,889
  • 2
  • 18
  • 32