【发布时间】:2010-02-10 09:06:24
【问题描述】:
我正在拼命尝试用 PHP、mySQL 和 PDO 创建一个相对简洁的搜索引擎。我有一个书籍数据库,我正在尝试查询两个字段的搜索。这是我目前所拥有的:
"SELECT id, title, author, isbn, MATCH(title, isbn) AGAINST (:term) AS score FROM %sbooks WHERE MATCH(title, isbn) AGAINST (:term) AND is_active = 'y' ORDER BY score DESC LIMIT 0,25");
$sth->execute(array(':term'=>'+'.$keywords));
$keywords 是来自搜索字段的字符串,因此可能类似于“某本书”。
我不想过滤掉任何单词或做任何太花哨的事情,但是上面的查询忽略了很多结果,即使我将其置于 BOOLEAN MODE 时也是如此。
另外,我在数据库中有两本书,“书号 1”和“书号 2”。如果我搜索“书号 2”,那么“书号 1”的得分仍然会更高。然而,主要问题是很多搜索只是返回而没有结果:(
无论如何可以帮助建议我在这里做错了什么吗?
【问题讨论】: