您对我有什么建议,用于在搜索引擎的不同表格中进行搜索?
每个表都不同,列不同,行数不同。
在相应的表上创建触发器以将不同表中的内容提取到单个表中。在该表上应用全文搜索索引。
确保FULL-TEXT
在这种情况下您已经考虑过索引机制。
表类型FULL-TEXT
支持索引。MyISAM
ENGINE
Full-text
使用 MATCH() ... AGAINST 语法执行搜索。MATCH() 采用逗号分隔的列表来命名要搜索的列。AGAINST 接受一个要搜索的字符串和一个可选的修饰符,指示要执行的搜索类型。搜索字符串必须是文字字符串,而不是变量或列名。全文搜索分为三种类型:
自然语言搜索将搜索字符串解释为自然人类语言中的短语(自由文本中的短语)。没有特殊的运算符。停用词列表适用。此外,出现在 50% 或更多行中的单词被认为是常见的并且不匹配。
如果给出了 IN NATURAL LANGUAGE MODE 修饰符或没有给出修饰符,则全文搜索是自然语言搜索。
布尔搜索使用特殊查询语言的规则解释搜索字符串。该字符串包含要搜索的单词。它还可以包含指定要求的运算符,例如匹配行中必须存在或不存在单词,或者它的权重应该高于或低于通常。诸如“some”或“then”之类的常用词是停用词,如果出现在搜索字符串中,则不匹配。IN BOOLEAN MODE 修饰符指定布尔搜索。有关更多信息,请参阅第 12.9.2 节,“布尔全文搜索”。
查询扩展搜索是对自然语言搜索的修改。搜索字符串用于执行自然语言搜索。然后将搜索返回的最相关行中的单词添加到搜索字符串中,然后再次进行搜索。查询返回第二次搜索的行。
有关更多信息,请参阅:
创建您的函数,该函数将动态输入列名和表名。出于搜索目的,您必须知道哪个列与哪个表相关,然后始终将这 2 个参数 1) table_name 2) column_names 数组传递给它。使用这些参数适合的条件创建 sql 查询,并动态开发查询。然后查询将返回结果。