use*_*474 12 javascript lucene indexing json
我有一大堆JSON对象(它是一个音乐库,其中包含艺术家,专辑等属性,使用loadonce = true提供jqgrid)我想在整个集合中实现类似lucene(类似google)的查询 - 但是本地,即在浏览器中,不与Web服务器通信.有没有任何javascript框架可以帮助我?
浏览您的记录,通过组合名为index的单个字符串字段中的所有可搜索字段来创建一次性索引.
将这些索引记录存储在Array中.
在索引上对Array进行分区..就像在一个数组中的所有a一样,依此类推.
对索引使用javascript函数indexOf()以匹配用户输入的查询并查找分区Array中的记录.
这是一个简单的部分,但它将以非常有效的方式支持所有简单查询,因为不必为每个查询重新创建索引,并且indexOf操作非常有效.我用它来搜索多达2000条记录.我使用了预先排序的数组.实际上,这就是Gmail和雅虎邮件的工作方式.它们将您的联系人存储在浏览器中的预排序数组中,其中包含一个索引,允许您在键入时查看联系人姓名.
这也为您提供了构建基础.现在,您可以在其上编写高级查询解析逻辑.例如,要支持一些简单的条件关键字,例如 - AND OR NOT,将需要大约20-30行自定义JavaScript代码.或者你可以找到一个JS库,它将像Lucene一样为你解析.
有关上述逻辑的参考实现,请查看ZmContactList.js如何对联系人进行排序和搜索以进行自动完成.
归档时间: |
|
查看次数: |
4687 次 |
最近记录: |