2010-12-12 41 views
0

刚刚遇到这个问题,使用mysql的全文搜索。FULLTEXT无关结果

我喜欢250条记录(长文章喜欢的东西),并使用全文MATCH AGAINST IN BOOLEAN MODE。现在,如果我搜索关键字'三星',如果这个关键字存在于所有记录中,那么它将返回它应该记录的所有250条记录(当然,如果关键字超过记录的50%,就不会返回“IN BOOLEAN MODE”,它不会返回任何内容)。

现在的问题是,在一些文章中,关键字'三星'曾经发生过一次,而其他几次,但是MYSQL对所有返回的记录给出了1分,甚至那些具有'三星'如15在他们的时代。

回答

1
select ... 
where match(...) against('samsung' in boolean mode) 
order by match(...) against('samsung' with query expansion) desc; 
+1

我想你实际上在这里运行2个全文查询可能会影响性能 – Xuni 2011-01-01 20:57:22