提高sql文本搜索结果的质量

时间:2014-09-24 07:12:40

标签: sql

我有一个表格,其中包含存储文章标题的列。 用户正在键入搜索词,例如"德国汽车测试"。 搜索是通过使用sql等完成的,它看起来像这样(基于参数的数量)

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

这样可行但是,结果对用户来说并不令人满意,返回的结果太多,结果不按匹配的单词数排序(示例显示包含所有3个术语的第一个结果)。

我希望避免在beckend上进行处理,但如果处理时间不长,我会考虑它(使用Java和SQL - EntityManager - MySql)

是否有提高搜索质量的简单方法? 我在表中有大约10,000条记录。

1 个答案:

答案 0 :(得分:0)

我不是MySql专家,但您可能需要的是全文搜索功能。好消息是MySql支持这个功能。请参阅此article或此tutorial。要使用全文搜索,您必须在给定列上创建全文索引。基于此索引的查询将比使用LIKE运算符更快。另一个优点是全文搜索查询从最相关的结果开始返回结果。这意味着您只能向用户显示可能对他有用的行。