搜索查询优化

时间:2010-07-09 19:12:32

标签: optimization search

过去我从来没有过多地清理/重新格式化搜索查询,至少不会超过防止sql注入等一般安全问题。

我意识到我应该实现像AND,OR,NOT等关键字...并执行诸如清除标点符号(如撇号,连字符等)之类的操作...当用户在搜索框中键入“Smiths”时,查询不会返回“Smith's”(带撇号)。

我还可以采取哪些其他措施来改善用户的搜索查询(不会损害他们)?

我来自PHP MySQL-FTS设置;但是,我确信这可以扩展到多个平台。

修改

让我澄清一点,我对数据库的SQL查询不太感兴趣,我对优化感兴趣的是用户在搜索框中提供的查询。

2 个答案:

答案 0 :(得分:1)

  • NEAR关键字
  • “精确短语”的双引号
  • 删除短/常用词(“a”,“an”,“the”等)
  • stemming(删除常用前缀和后缀)

我建议您阅读这个类似问题的答案:Optimizing a simple search algorithm以及this article关于Google的一些功能。

答案 1 :(得分:0)

  1. 在搜索查询的“where”子句列上创建索引。
  2. 要启用天真的法术修正,您也可以存储要为其提供拼写检查的列的soundex。
  3. 启用慢速查询的日志记录,这有助于您跟踪性能问题。