php - 尝试为我的网站构建一个搜索引擎

标签 php html mysql mysqli

我正在尝试寻找为我的网站创建搜索引擎的最佳方法。所有需要搜索的项目都在 mysqli 数据库中,但我在数据库中也有需要从搜索中排除的表(即用户信息、导航菜单表等)。到目前为止,我提出的唯一解决方案是单独搜索每个表中的关键字,然后显示结果。 有没有更简单的方法来做到这一点?我想要一个“表组”或类似的东西,这样我的查询可能是这样的:

SELECT * FROM table_group WHERE any_column LIKE “%search_string%”

数据库目前大约有 30 个表,但表可以动态添加,并且随着站点使用的增加,表数量将会增长。解决这个问题的最佳方法是什么?

最佳答案

如果你想追求创建一个查询数据库的搜索引擎的想法,我认为你必须查询数据库的元数据:表的列表和每个表具有的字段列表。

但是,这很难遵循,因为最后您必须在可打印 View 中向用户呈现信息:这与查找正确的名称不同(因此您必须呈现页面 userInfo.php -举个例子-对用户来说)或公司名称(因此您必须呈现一个完全不同的页面。

我认为至少您必须根据应用程序中的页面创建搜索元素。这意味着您必须创建一个包含搜索引擎信息的表:如何呈现此信息、应在哪些表/字段中搜索等。

即使会有花招。如果用户搜索“smyth”怎么办?搜索引擎是否足够聪明,可以返回“smith”?如果您有两个字段,一个包含姓名,另一个包含姓氏,那么用户输入“john smith”会发生什么??

关于php - 尝试为我的网站构建一个搜索引擎,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21130964/

相关文章:

javascript - 我正在学习 php 和 mysql,我正在使用数组创建动态表单。抛出空查询警告

mysql - 选择数据不在表的其余部分中的日期范围的计数

php - Codeigniter 自定义 where 子句中的错误

php - 正则表达式,其中数字可以连续以 9 但不能以 999 开头

PHP - 查询 mysql 时的错误处理

javascript - IFrame 中的 AngularJS run() 方法不会在 iframe 重新加载时重新运行

mysql - MySQL 查询中的未知 'like'

php - 检查同一个类中是否存在方法

html - 调整浏览器大小时如何停止水平重叠?

javascript - JQuery:根据点击事件设置属性