因此,我有一个主索引数据库对象库,其中包含大约30.000条记录,我必须运行全文搜索查询。使用ydn fts插件执行此操作会生成第二个包含大约300.000条记录的对象库。现在,因为生成这个'索引'数据存储需要很长时间,我认为它也可以更快地分发索引的内容。这反过来生成了一个大约7MB的zip文件,在客户端解压后提供了超过40MB的数据。目前我循环遍历这个数据逐个插入(异步,所以回调时间用于解析下一行),大约需要20分钟。正如我在通过网络工作者申请的背景中这样做,这并非完全不可接受,但仍然感觉非常低效。一旦填充,数据库实际上足够快,甚至可以用于中高端移动设备,但移动设备上20分钟到一小时的人口时间真的很疯狂。有什么建议可以改进吗?或者是减少记录数量的唯一选择? (这意味着写我自己的全文搜索...不是我期待的东西)
答案 0 :(得分:1)
移动浏览器的数据量非常大。除非用户经常使用您的应用程序,否则不值得将所有数据发送到客户端。您应该使用服务器端进行全文搜索,同时按照this example app的说明进行机会性搜索。这样,用户就不必等待全文搜索索引。
全文搜索需要索引除一些词干词之外的所有标记(单词)。仅当lang
设置为en
时才会激活词干分析。您应该分析您的应用程序哪些部分需要时间。我猜浏览器占用大部分时间,在这种情况下,除了并行化之外,你不能做很多优化。发送索引数据(如上所述)将无济于事(但请通过比较确认)。 Web工作者也无济于事。我认为你的应用程序没有因为索引而响应缓慢的问题。
除了索引时间较慢外,您还有其他投诉吗?