WEB开发网
开发学院数据库MySQL MySQL全文搜索 阅读

MySQL全文搜索

 2009-01-05 11:15:37 来源:WEB开发网   
核心提示: 6 rows in set (0.00 sec)下面的示例更复杂一点,查询返回相似性并依然以相似度递减的次序返回记录行,MySQL全文搜索(3),为了完成这个结果,你应该指定MATCH()两次,它将得到一个较高的权重,然后,这不会引起附加的开销,因为 MySQL 优化器会注意到两次同样的M

6 rows in set (0.00 sec)下面的示例更复杂一点。查询返回相似性并依然以相似度递减的次序返回记录行。为了完成这个结果,你应该指定MATCH()两次。这不会引起附加的开销,因为 MySQL 优化器会注意到两次同样的MATCH()调用,并只调用一次全文搜索代码。

mysql> SELECT id, body, MATCH (title,body) AGAINST
  -> ('Security implications of running MySQL as root') AS score
  -> FROM articles WHERE MATCH (title,body) AGAINST
  -> ('Security implications of running MySQL as root');
+----+-------------------------------------+-----------------+
| id | body                | score      |
+----+-------------------------------------+-----------------+
| 4 | 1. Never run mysqld as root. 2. ... | 1.5055546709332 |
| 6 | When configured properly, MySQL ... |  1.31140957288 |
+----+-------------------------------------+-----------------+

2 rows in set (0.00 sec)MySQL 使用一个非常简单的剖析器来将文本分隔成词。一个“词”是由文字、数据、“'”和“_”组成的任何字符序列。任何在 stopword 列表上出现的,或太短的(3 个字符或更少的)的 “word” 将被忽略。

在集和查询中的每个合适的词根据其在集与查询中的重要性衡量。这样,一个出现在多个文档中的词将有较低的权重(可能甚至有一个零权重),因为在这个特定的集中,它有较低的语义值。否则,如果词是较少的,它将得到一个较高的权重。然后,词的权重将被结合用于计算记录行的相似性。

上一页  1 2 3 4 5 6  下一页

Tags:MySQL 全文 搜索

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接