使用多个参数搜索
在我的应用程序中,当用户可以搜索“in:inbox is:unread”等时,我希望允许用户使用类似于 GMail 功能的简单语法基于多个参数进行复杂搜索。
但是,GMail 会使用此信息进行 POST,我希望表单为 GET,以便信息位于搜索结果页面的 URL 中。
因此我需要在 URL 中格式化参数。
要求:
- 保持 URL 尽可能干净
- 避免使用无效的 URL 字符,例如方括号
- 允许大量搜索功能
- 以后有能力添加更多功能。
我知道 StackOverflow 允许用户以这种方式搜索多个标签:
但是,我还希望允许用户使用多个附加参数进行搜索。
初始设计
我目前的设计是使用如下 URL:
- http://example.com/search/tagged/c+sql/searchterm/transactions
- http://example.com/search/searchterm/transactions
- http://example.com/search/tagged/c+sql
- http://example.com/search/tagged/c+sql/not-tagged/java
- http://example.com/search/tagged/c+sql/created/yesterday
- http://example.com/search/created_by/user1234
我打算在search
参数之后解析 URL,然后决定如何构造我的搜索查询。
有没有人见过这样的 URL 参数在网站上实现得很好?
如果是这样,哪个做得最好?