用的wails,可以从前端调用go, 写法如下:
var mediaData []string
func (a *App) FilterJson(keyword string) {
// ...
// 发送给前端
runtime.EventsEmit(a.ctx, "filterJson", mediaData)
}
我在做模糊搜索,网页input中键入一个字符便调用一次FilterJson,但要过滤的json很大,完全遍历很耗时。 现在的想法是: 第一次调用时遍历json, 第二次调用时终止第一次的遍历并获取已处理的数据,以此为基础继续遍历 ...
请问这个应该怎么实现呢?
有疑问加站长微信联系(非本文作者)

你这个第几次第几次的,后次调用还能中断前次调用,说的应该是并发调用这个函数吧?
你是不是应该考虑一下“go 并发编程”?
是的,我考虑过这个,但不确定我的想法是否正确,想听听大家的意见,也许有更好的方法解决
第一次遍历json,第二次中止,为什么要中止,这样做有什么意义吗。就算并发,第二个go协程起来后中止第一个go协程,这还不如不并发。要过滤的json很大 是指数据量很大吗。数据是怎么存的。
你这模糊搜索做的就很垃圾,换个思路吧
你应该是希望所有请求只有一个返回结果,可以了解一下singleflight
哈哈,一针见血
想骂随意,前提是提供解决方案,我的想法怎么个垃圾法?还是你就纯口嗨?证明一下你自己不垃圾呗?
两次调用是两次http请求懂吗?第二次请求如何从第一次请求中获取数据并且打断第一次请求?这个本来就不好实现。
@GO_go_GO1 我说了是wails,你怎么得出http通信的?就算是,这是垃圾的理由?不骂人就活不下去?我在外网也问过不少低智问题了,一次被骂的经历都没有,甚至有人帮忙解释我的意图(英文不好),在国内却被如此对待,这是我的问题吗?别给我扣崇洋媚外的帽子,这是完全的事实,还是说,这是老鼠屎与汤的问题。为了论坛和谐,我就此打住,管理如果想删,请随意
模糊搜索 不该这么做吧 用字典树 会好些?
这个不是es吗,应该是键入一个字符时重新从es中查询;不需要对什么很大的东西做解析过滤
我的想法和字典树有一定程度的相似,字典树是提前做好所有可能性对吧,我是动态生成的,理由是我所需要的模糊查询除了顺序,无其他联系。比如
abcde
,ae
、ce
、bcd
等都是有效的关键字,即不要求字符相连,字典树虽然能做,但效率也就那样,更合适的或许是AC自动机,但对我来说过于复杂了。查了下这个好像是查询语法,但我没有数据库的。如果理解错了,希望能给个链接
Elasticsearch = es ,查数据要去掉无用的,把有用,分结构分字段保存,这大数据前期