我们正在寻找mysql查询,它提供准确的like '%%'
查询,但使用全文搜索MATCH AGAINST
。
例如
Select id,name from table where jobtitle like '%java software engineer in google%'
它给出了包含google中java软件工程师行的所有行。
但是,如果我们使用下面的mysql查询,则会给出不同的结果
Select id,name from table
where MATCH(jobtitle) AGAINST ('+java software engineer in google' IN BOOLEAN MODE)
它给出了包含google中java软件工程师的任何单词的行。
我想要准确的输出,它来自使用'%java软件工程师在谷歌%‘查询。
发布于 2016-09-13 10:44:38
正如MySQL关于布尔全文搜索的文档所指出的(粗体是我的):
布尔全文搜索功能支持以下运算符:. “ 包含在双引号(“”)字符中的短语只匹配按字面顺序包含该短语的行。全文引擎将该短语拆分为单词,并在全文索引中搜索单词。非字字符不需要完全匹配:短语搜索只需要包含与短语完全相同的单词和相同的顺序。例如,“测试短语”“匹配”测试,短语。。 如果短语中没有包含索引中的单词,则结果为空。由于多种因素,这些单词可能不在索引中:如果它们不存在于文本中,则为终止词,或短于索引单词的最小长度。
因此,使用"
操作符:
Select id,name from table
where MATCH(jobtitle) AGAINST ('"java software engineer in google"' IN BOOLEAN MODE)
粗体部分包含警告:由于全文索引的性质,结果可能略有不同。
https://stackoverflow.com/questions/39467443
复制相似问题