我正在为我的数据库开发一个高度专业化的搜索引擎.当用户提交搜索请求时,引擎会将搜索项拆分为数组并循环遍历.在循环内部,针对几种可能的场景检查每个搜索项以确定它可能意味着什么.当搜索项与场景匹配时,会向SQL查询添加WHERE条件.某些术语可以有多种含义,在这些情况下,引擎会构建一个建议列表,以帮助用户缩小结果范围.
旁白:如果有人有兴趣知道,通过在前面添加一个关键字来改进模糊的术语.例如,1954年可能是一年或序列号.引擎将向用户建议这两种情况,并将搜索项修改为年份:1954或序列号:1954.
在同一个循环中构建SQL查询和优化建议对我来说感觉不对,但是将它们分开会增加更多开销,因为我必须循环遍历同一个数组两次并且测试所有相同的场景两次.什么是更好的行动方案?
spr*_*man 13
我可能会将这两个动作分解为自己的功能.然后你就拥有了
foreach (term in terms) {
doThing1();
doThing2();
}
Run Code Online (Sandbox Code Playgroud)
这很干净.