-1

您对我有什么建议,用于在搜索引擎的不同表格中进行搜索?

每个表都不同,列不同,行数不同。

4

3 回答 3

0

在相应的表上创建触发器以将不同表中的内容提取到单个表中。在该表上应用全文搜索索引。

于 2012-04-10T06:06:50.010 回答
0

确保FULL-TEXT在这种情况下您已经考虑过索引机制。 表类型FULL-TEXT支持索引。MyISAMENGINE

Full-text使用 MATCH() ... AGAINST 语法执行搜索。MATCH() 采用逗号分隔的列表来命名要搜索的列。AGAINST 接受一个要搜索的字符串和一个可选的修饰符,指示要执行的搜索类型。搜索字符串必须是文字字符串,而不是变量或列名。全文搜索分为三种类型:

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

    如果给出了 IN NATURAL LANGUAGE MODE 修饰符或没有给出修饰符,则全文搜索是自然语言搜索。

  • 布尔搜索使用特殊查询语言的规则解释搜索字符串。该字符串包含要搜索的单词。它还可以包含指定要求的运算符,例如匹配行中必须存在或不存在单词,或者它的权重应该高于或低于通常。诸如“some”或“then”之类的常用词是停用词,如果出现在搜索字符串中,则不匹配。IN BOOLEAN MODE 修饰符指定布尔搜索。有关更多信息,请参阅第 12.9.2 节,“布尔全文搜索”。

  • 查询扩展搜索是对自然语言搜索的修改。搜索字符串用于执行自然语言搜索。然后将搜索返回的最相关行中的单词添加到搜索字符串中,然后再次进行搜索。查询返回第二次搜索的行。

有关更多信息,请参阅:

http://devzone.zend.com/26/using-mysql-full-text-searching/

http://www.iamcal.com/publish/articles/php/search/

于 2012-04-10T06:16:33.933 回答
0

创建您的函数,该函数将动态输入列名和表名。出于搜索目的,您必须知道哪个列与哪个表相关,然后始终将这 2 个参数 1) table_name 2) column_names 数组传递给它。使用这些参数适合的条件创建 sql 查询,并动态开发查询。然后查询将返回结果。

于 2012-04-10T06:14:11.767 回答