【发布时间】:2016-04-28 19:44:07
【问题描述】:
我有一个带有后端 PHP 和 mysql 的 android 应用 搜索功能。
目前用户按键我正在向服务器发送请求以获取数据。 (现场建议)。
每次按键我都会将用户输入插入服务器。
问题到了最后,由于以下冗余数据,查看用户搜索内容的统计数据非常困难。
用户搜索:Apple
移动端在每次按键时向服务器发送请求,如下所示
- 一个
- 应用
- 应用
- 应用
Apple
问题是:如何从mysql中删除记录[1到4]只保留[5]
注意:在移动应用中保持相同的实时搜索(按按键)功能。
其他说明: 应用正在使用 REST API 通过 HTTP POST 发送数据 一次有 1000 名用户可以搜索该应用程序。 [上一条上一条记录可能并不总是同一查询的一部分]
我通过发送一个长度为 12 个字符的唯一键以及搜索查询解决了这个问题,在一天结束时,我通过保留每个键的最新记录来清理查询
【问题讨论】:
-
解决方案1:实际字符串如 apple 的记录很难找到,但可以在一天结束时删除长度小于 3 个字符的记录。这样,您可能会获得更少的冗余数据。解决方案 2:使用此按键检查是用户按下 enter 键,然后仅向服务器发送请求以根据关键字搜索记录。输入键 keycode 是 13。
-
您可以使用 onblur 事件将记录存储在数据库中...如果用户离开搜索字段然后获取文本框的值并存储在数据库中
-
您可以为数据库中的每个按键添加时间戳,并获取最新的跳过所有其他按键 -- stackoverflow.com/questions/11912221/… -- 或使用相同的方法删除除最后一个以外的所有按键
-
@AlankarMore 对于解决方案 1,我将放弃 10% 的 3 个字符的搜索。但是很好的建议。对于解决方案 2:我正在使用移动应用程序及其实时搜索。我们希望用户看到实时建议。