2014-09-24 66 views
0

我有一個存儲文章標題的列表。 用戶正在鍵入搜索詞,例如「德國汽車測試」。 搜索是通過使用SQL和喜歡做的,它看起來像這樣(基於PARAMS數)提高sql文本搜索結果的質量

Select * from articles where title like '%Germany%' or title like '%car%' or title like '%testing%'; 

這工作,但結果並不令用戶滿意,太多的返回結果,結果是不按匹配的單詞數量排序(示例顯示含有全部3個術語的第一個結果)。

在尋找避免beckend處理,但我會考慮它,如果它沒有太多時間處理昂貴(使用Java和SQL - EntityManager的 - MySQL的)

有沒有簡單的方法來改善我的搜索質量? 我在表中有大約10.000條記錄。

回答

0

我不是MySql專家,但您可能需要的是全文搜索功能。好消息是MySql支持這個功能。看到這個article或這個tutorial。要使用全文搜索,您必須在給定的一列或多列上創建全文索引。基於此索引的查詢將比使用LIKE運算符更快。另一個優點是全文搜索查詢返回從最相關的結果開始。這意味着你只能向用戶顯示這些可能對他有意思的行。