您好我正在构建一个RESTful应用程序,但无法找到建议的方式来模式化可选的模糊或LIKE查询。例如,严格的查询可能是,
/place?city=New+York&state=NY
对应于SQL“...... WHERE city =”New York“AND state =”NY“
但是,如果我想在城市名称中使用“York”搜索任意行的城市字段,该怎么办?
“... WHERE city LIKE”%{parameter}%“AND state =”{parameter2}“
我正在考虑在请求中添加某种url-valid字符,如下所示:
/place?city=*York*&state=NY
我应该使用既定或推荐的模式吗?谢谢!
答案 0 :(得分:2)
使用查询字符串进行搜索很好,但使用像“*”或“?”这样的宏字符有点奇怪。在查询字符串中(除非您决定构建一个非常强大的搜索引擎,如Google)。更重要的是,默认情况下,搜索通常被认为是模糊模式,因此使用“*”附加/前置关键字是多余的。如果确实需要精确搜索,则可以使用双引号括起完全(或严格)关键字。即,我建议使用/place?city=*York*&state=NY
。
/place?city=York&state="NY"
事实上,Google使用引号来搜索确切的单词或单词集,我还发现this site采用了这种模式。