0

我在大学的主要项目中使用 PHP/MYSQL。这是我做的一个搜索引擎。

我的数据库包含这句话“ who is the first president of america”的结果。

我的问题是,当用户输入没有空格的相同查询(例如:' whoisthefirstpresidentofamerica')时,我的搜索引擎无法从数据库中检索结果。

无论如何要从不包含空格的字符串中找到单词?

4

2 回答 2

2

您可以通过从两个字符串中删除所有空格来进行比较:

select *
from t
where replace(t.col, ' ', '') = replace(@Val, ' ', '')

但是,我怀疑您想使用 MySQL 的全文搜索功能。如果您正在处理句子,这是迄今为止更好的方法。您可以从这里开始了解它们。

编辑:

如果您的目的是研究不同的排名算法,那么您需要了解文本搜索和分析。一个很好的起点是关于全文搜索的 MySQL 文档。但是,它不允许您非常轻松地自定义排名方法。

特别是,您应该以“文档术语”格式存储文本。也就是说,将一个句子分成多行,一个用于句子中的每个术语,以及一个单词位置列。这将为您提供调查自己的排名算法所需的灵活性。

于 2013-07-19T11:08:00.333 回答
1

使用LIKE关键字

select * from tablename where fieldname LIKE 'value%';
于 2013-07-19T11:06:21.000 回答