Optimization 搜索查询优化
在过去,我从未对搜索查询进行过太多的清理/重新格式化,至少不超过一般的安全措施,比如防止sql注入 我意识到我应该实现诸如AND、OR、NOT等关键字。。。以及清除标点符号,如撇号、连字符等。。。当用户在搜索框中键入“Smith”时,查询不会返回“Smith”(带撇号) 我还可以做些什么来改进用户的搜索查询(而不损害他们) 我来自PHP MySQL FTS设置;但是,我相信这可以扩展到多个平台 编辑 让我澄清一下,我对数据库的SQL查询不太感兴趣,我感兴趣的是优化用户在搜索框中提供的查询Optimization 搜索查询优化,optimization,search,Optimization,Search,在过去,我从未对搜索查询进行过太多的清理/重新格式化,至少不超过一般的安全措施,比如防止sql注入 我意识到我应该实现诸如AND、OR、NOT等关键字。。。以及清除标点符号,如撇号、连字符等。。。当用户在搜索框中键入“Smith”时,查询不会返回“Smith”(带撇号) 我还可以做些什么来改进用户的搜索查询(而不损害他们) 我来自PHP MySQL FTS设置;但是,我相信这可以扩展到多个平台 编辑 让我澄清一下,我对数据库的SQL查询不太感兴趣,我感兴趣的是优化用户在搜索框中提供的查询 在搜索
- 近关键字
- “精确短语”的双引号
- 删除短/常用词(“a”、“an”、“the”等)
- (删除常用的前缀和后缀)
- 近关键字
- “精确短语”的双引号
- 删除短/常用词(“a”、“an”、“the”等)
- (删除常用的前缀和后缀)
我建议大家通读一下这个类似问题的答案:还有谷歌的一些功能。FTS在数据库供应商之间可以适度转移——关键字基本相同,但语法可能略有不同。你可以看看像斯芬克斯(Sphinx)这样的第三富时,让富时变得更便携。这其实不是我要问的。我想知道我还应该对用户提供的查询做些什么,而不是对数据库的查询。你的标题是错误的。改进搜索查询=Query optimization.FTS可在数据库供应商之间适度转移-关键字基本相同,但语法可能略有不同。你可以看看像斯芬克斯(Sphinx)这样的第三富时,让富时变得更便携。这其实不是我要问的。我想知道我还应该对用户提供的查询做些什么,而不是对数据库的查询。你的标题是错误的。改进搜索查询=查询优化。