我有一个相当大的
JSON对象数组(它的一个音乐库,诸如艺术家,专辑等属性,使用loadonce = true提供jqgrid),并且我想通过整个集合来实现类似lucene的(类似google的)查询,但是本地,即在浏览器中,不与Web服务器通信.有没有任何
JavaScript框架会帮助我?
解决方法
通过记录,通过组合所有搜索创建一次性索引
一个字段字段中的可用字段称为索引.
>将这些索引记录存储在数组中.
>将索引上的数组分割为一个数组中的全部a等等.
>对索引使用javascript函数 indexOf()来匹配用户输入的查询,并从分区数组中查找记录.
一个字段字段中的可用字段称为索引.
>将这些索引记录存储在数组中.
>将索引上的数组分割为一个数组中的全部a等等.
>对索引使用javascript函数 indexOf()来匹配用户输入的查询,并从分区数组中查找记录.
这是很容易的部分,但它将以非常有效的方式支持所有简单的查询,因为不必为每个查询重新创建索引,并且indexOf操作非常有效.我用它来搜索多达2000条记录.我使用了一个预先排序的数组.其实这就是Gmail和yahoo邮件的工作原理.他们将您的联系人在浏览器上存储在一个预先排序的数组中,其索引可以让您在输入时查看联系人姓名.
这也为您提供了基础.现在,您可以在其上编写高级查询解析逻辑.例如,要支持一些简单的条件关键字,如 – 和或不,将需要约20-30行自定义JavaScript代码.或者您可以找到一个JS库,将以Lucene的方式为您解析.
对于上述逻辑的参考实现,请查看ZmContactList.js如何排序和搜索联系人以进行自动填充.