我想为所有内容(或至少可搜索的内容)都存储在数据库中的网站构建站点范围的搜索。在不过度参与的情况下,我能想到的最好方法如下:
- 用户输入搜索查询-“棕色真皮沙发”。
- 将查询拆分为数组。
- 对数组的每一行使用 LIKE %$val% 搜索数据库 (mysql)。
- 将结果加载到数组中,然后为在内容中找到的搜索词的数量给每个结果 +1 分。
- 如果结果具有匹配数量的术语,则按特定页面的浏览次数排序 - 一个受欢迎程度的指标。
使用页面标题中的搜索词为结果赋予更多价值,或者允许用户通过使用引号来搜索多词短语,这不会太复杂。
除了性能考虑 - 限制返回的结果、缓存等,还有什么我需要考虑的或更好的方法来解决这个问题(除了实现谷歌搜索框)?