![]() |
1
1
如果您在genreid和platformid参数中添加默认值“”,那么我认为您可以将顶级代码重构为:
注意:我建议将表单方法切换为“get”进行类似的搜索,以提高用户浏览网站的体验。我已经将代码中的所有表单引用都切换到了url。 |
![]() |
2
1
你有没有想过使用全文搜索而不仅仅是标题、流派和平台之类的特定内容?全文比普通的表查询要快得多,但要花费更多的磁盘空间,并且允许对所有数据进行非常灵活的Google风格的搜索。看看下面的链接。 http://dev.mysql.com/doc/refman/5.0/en/fulltext-search.html 如果您这样做了,您可能只需要实现对全文搜索的pass-through用户输入,因为它通过自己的语法提供所有高级搜索表达式。通过这样做,您可能不需要根据他们正在搜索的内容来分支前端逻辑,这将使解决方案更干净、更快。 |
![]() |
3
1
我想这只是一种偏好,但自从谷歌出现以来,人们希望只有一个搜索框可以做任何事情。通过测试输入并有条件地运行单独的查询并返回组合的结果,可以直接从简单框中提供一些高级搜索功能。为了使结果更清晰,可以使用coldfusion或javascript突出显示匹配部分。 我也会初始化组件,而不是多次使用cfinvoke,但我不确定这是一个需求还是一个首选项。
当然,有许多不同的方法可以做到这一点。这只是降低简单搜索与高级搜索复杂性的一种方法。高级结果只有在匹配的情况下才会显示,并且您可以使用mycomponent函数中的查询来调优这些结果-如果没有结果,请记住返回一个空查询。 |
![]() |
4
1
我的同事告诉我,我们应该简化cfif语句: 从“cfif something eq”开始,我们移动到“cfif not len(something)”,我们更多地使用布尔值来表示noresult和hasResult,我们将使用布尔值。 不管怎样,其他答案都是一些很好的灵感,我需要检查我自己的搜索页面;) |