为什么当我创建全文索引时,我的匹配/反对查询是否返回没有结果?

时间:2010-12-22 09:45:11

标签: php mysql full-text-search

我创建了一个FULLTEXT索引......

ALTER TABLE pads ADD FULLTEXT search (Keywords, ProgramName, English45)

ProgramName是一个Varchar但是,即使我没有在索引中添加它,我仍然没有得到任何结果。在我的索引列表中,该指数的基数为1。

继承我正在使用的查询。

select PadID from Pads WHERE MATCH(keywords,ProgramName,English45) 
 AGAINST('games')

然而,这是我的目标。

select PadID from Pads WHERE MATCH(keywords,ProgramName,English45) 
 AGAINST('games') AND RemovemeDate = '2001-01-01 00:00:00' 
 ORDER BY VersionAddDate DESC

这是我的Pads Table字段。 alt text

我需要将查询作为三个字段的一部分返回。

1 个答案:

答案 0 :(得分:0)

我想,你可以试试

MATCH(keywords,ProgramName,English45) 
AGAINST('games' in boolean mode)

默认搜索行为

  

自然语言搜索将搜索字符串解释为自然人类语言(自由文本中的短语)中的短语。没有特殊的运营商。禁用词列表适用。此外,50%或更多行中出现的单词被认为是常见的并且不匹配。如果没有给出修饰符,则全文搜索是自然语言搜索。

布尔搜索

  

布尔搜索使用特殊查询语言的规则来解释搜索字符串。该字符串包含要搜索的单词。它还可以包含指定要求的运算符,以便在匹配的行中必须存在或不存在单词,或者它应该比通常更高或更低的权重。诸如“some”或“then”之类的常用词是停用词,如果存在于搜索字符串中则不匹配。 IN BOOLEAN MODE修饰符指定布尔搜索