搜索表单网址结构

时间:2009-08-28 20:25:35

标签: php algorithm url search encode

我们正在构建一个包含近70个属性的大型搜索界面。大多数这些属性都是布尔值(只保留0或1),大约12个属性是int值,有些属于字符串。

goal: http://www.example.com/q/test_search/fdgREGd3vfS323
want to avoid: http://www.example.com/q/test_search/?val_12=1000&val_120=0&val_4=XY....

我们的目标是拥有一个包含所有搜索属性的简短网址,从而可以通过记住网址来存储/发送精确的搜索数据。

我知道这可以通过url字符串中的许多参数完成,但我的老板是持久的。

我们已经想出了如何表示布尔值:

将值映射到二进制表示(00010101011),每个位置代表一个变量。我们将这个字符串编码传递给例如较短的对应物(AB)。十六进制。

但是当谈到属性时,我们还没有决定如何处理。有什么想法吗?

2 个答案:

答案 0 :(得分:2)

您可以进一步简化它。如果数据库不是问题,您可以在数据库中存储人员的搜索,并提供这样的网址:

user_searches:
 search_id | prop1 | prop2 | prop3 | .... | propN

并为用户提供以下网址:

http://example.com/search/(search_id)

我更喜欢使用这种方式,因为它从用户的终点看不到正在发生的事情,它会保持网址简短,您可以(轻松)跟踪人们搜索的内容,以防您想要优化网站的可用性: )。

<强> [编辑] 另外,你可以使用哈希来搜索(search_id),这样其他用户就不会轻易猜到搜索。

答案 1 :(得分:0)

如果您的值是有限且静态的,请为它们指定一个数字。

如果所有可能的搜索参数的组合都是有限的,那么还可以选择散列整个事物并将该哈希值用作您的restful URL参数。