全文搜索适合我吗?

时间:2017-01-25 05:19:49

标签: mysql search full-text-search

我正在使用MySQL全文搜索进行大量实验,并不确定它是否适合我。

在全文搜索之前,我正在使用LIKE搜索,这提供了非常好的精度,但效率却有所下降。全文搜索是有效的,并且通过召回提供更多结果,这是好的。

我正在将全文搜索应用于名为value的表格列。此列可能包含非常不同类型的信息,例如名字,姓氏或研究兴趣,或者您居住的地方。

当我喜欢搜索本专栏时,实际上我的结果确实很好。例如,让我说我正在寻找"Roger Federer", when I type Rog Fed I am just find Roger Federer, but not Roger Johnson等等。

对于全文搜索,我使用的是MySQL。我使用的模式是布尔值。在布尔模式下,您有许多选项,例如+ -*+表示我要找这个词必须。如果使用全文搜索应用相同的查询:

SELECT * FROM Mytable WHERE MATCH(value) AGAINST('+rod' '+fed' IN BOOLEAN MODE)

显然,此查询将无法返回结果。因为它正在寻找rodfed。为了解决这个问题,我使用如下的asterix:

SELECT * FROM Mytable WHERE MATCH(value)AGAINST('* rod''* fed'IN BOOLEAN MODE)

这样可以正常工作,但它也会找到更多结果,如:

Roger Federer
Federer Johnson
John Roger

我的问题是,我无法确定用户是否输入了适当的搜索关键字。他们可能会输入一半的单词并可能期望看到他们想要的结果。在那些情况下,我不能使用+运算符,这就是为什么我应该*。在这种情况下,使用全文搜索是否是个好主意?

1 个答案:

答案 0 :(得分:0)

这取决于你的DBMS。

您可以查看此链接。

http://www.developer.com/db/article.php/3446891