具有相关性的PHP PDO搜索引擎
我正在拼命尝试用PHP、mySQL和PDO创建一个相对简洁的搜索引擎。我有一个图书数据库,我正在尝试对其中两个字段进行查询搜索。以下是我到目前为止的情况:具有相关性的PHP PDO搜索引擎,php,mysql,pdo,Php,Mysql,Pdo,我正在拼命尝试用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 L
"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是搜索字段中的字符串,因此可能类似于“某本书”
我不想过滤掉任何单词或做任何太花哨的事情,但上面的查询忽略了很多结果,即使我将其置于布尔模式
另外,我在数据库中有两本书,“书号1”和“书号2”。如果我搜索“书号2”,那么它的分数仍然会比“书号1”高。然而,主要问题是,许多搜索只是返回,没有结果:(
是否可以帮助提示我的错误?所有少于三个字母的单词都将被忽略。因此,标题末尾的1和2将被忽略。您可以更改此设置: 与ISBN匹配也没有用,因为从MySQL的角度来看,这不是一个词
如果你想做得更好,我认为你应该发明自己的搜索引擎。我可以通过PHP更改每个查询的最小单词数吗?我有MySQL 5,但不幸的是,我没有访问配置文件的权限。不,每个查询是不可能的。仅限每个服务器。