我已经在Server 2008表之一上实现了全文搜索。我使用包含性查询来获取结果,并根据Rank对其进行排序。
示例
SELECT Ad_text.*, k.rank
FROM Ad_text
INNER JOIN CONTAINSTABLE(Ad_text, text, 'Wanted or Engineers or bride') k
ON Ad_text.id = k.[KEY] order by rank desc现在,当查询返回结果时,它会将这些单词的频率较高的行排列为更高的行,就像我希望那些行被排列得更高,其中包含了所有这些单词。
类似查询将以这种方式返回结果。
因为我希望第三位能排得更高。对于重复的文本,有什么不增加权重的可容纳性的。
发布于 2012-05-16 04:46:03
找到了一个解决办法,它使用了FreeTextSearch及其记录数量特性。它解决了这个问题
发布于 2013-03-08 06:23:52
大多数搜索引擎原址都使用FULL-TEXT-SEARCH。它比select和LIKE快得多.我增加了一个例子和一些链接..。我想这对你会有帮助..。在这个全文搜索中也有一些条件。
步骤:1
CREATE TABLE articles (
id INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY,
title VARCHAR(200),
body TEXT,
FULLTEXT (title,body)
);步骤:2
INSERT INTO articles (title,body) VALUES
('MySQL Tutorial','DBMS stands for DataBase ...'),
('How To Use MySQL Well','After you went through a ...'),
('Optimizing MySQL','In this tutorial we will show ...'),
('1001 MySQL Tricks','1. Never run mysqld as root. 2. ...'),
('MySQL vs. YourSQL','In the following database comparison ...'),
('MySQL Security','When configured properly, MySQL ...');步骤:3
自然语言全文搜索:
SELECT * FROM articles
WHERE MATCH (title,body) AGAINST ('database');布尔全文搜索
SELECT * FROM articles WHERE MATCH (title,body)
AGAINST ('+MySQL -YourSQL' IN BOOLEAN MODE);通过这个链接viralpatel.net,devzone.zend.com,sqlmag.com,colorado.edu,en.wikipedia.org
https://stackoverflow.com/questions/10514405
复制相似问题