我在如何控制猎犬和Twitter typeahead对Typeahead中显示的结果进行排序的方式上遇到了一些问题。
我使用typeahead来显示建议的地址和城市,这意味着用户可以搜索“纽约”、“曼哈顿纽约”或“55街曼哈顿纽约”。
当用户搜索"New York“时,我更喜欢Typeahead给出的第一个建议是"New York”,这是最接近的匹配。目前,如果用户搜索例如“纽约”,第一个建议是"55h大道曼哈顿纽约“,"22街曼哈顿纽约”等。
有谁能告诉我如何实现这种排序的正确方向吗?
发布于 2014-03-04 01:18:29
我可能搞错了猎犬的用途。我认为猎犬是用来以一种聪明的方式对结果进行排序的,并且有一种方法可以通过猎犬选择排序算法。我想我错了。
解决方案是在获取它之前对整个事情进行排序。在这种情况下,在数据库的SQL查询期间。我用以下方式订购了我想要的东西:
SELECT address, city FROM house WHERE city LIKE :query OR address LIKE :query GROUP BY city ORDER BY CASE
WHEN city LIKE :query1 THEN 0
WHEN city LIKE :query2 THEN 1
WHEN city LIKE :query3 THEN 2
ELSE 3
END, city其中query1、query2和query3是参数的变体。例如"cityName%“、"% %CITYNAME%%”、"% cityName“。
https://stackoverflow.com/questions/22151857
复制相似问题