首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否有像Solr或Elasticsearch这样的东西可以仅在Javascript中用于客户端?

是否有像Solr或Elasticsearch这样的东西可以仅在Javascript中用于客户端?
EN

Stack Overflow用户
提问于 2012-06-15 14:01:33
回答 1查看 882关注 0票数 7

我们有一个小的数据集,并希望通过一个聪明的方式搜索它,以便填充一个自动完成的输入框。用户希望搜索一种类型的实体,但应该能够放入关联类型的属性。

由于我们的应用程序非常特定于行业,我将尝试将这个抽象的问题放到一个更相关的上下文中:

示例:用户希望选择某种类型的水果,并且可以使用水果的许多不同特性来搜索它。她可能会搜索它的名字(苹果),同一种水果的特殊类型(金色美味),本地化版本(apfel,تفاح,柚子),还有其他特性,比如含有苹果的食物(潘多迪,苹果酒),甚至搜索其描述的全文搜索结果。

通常,我想使用类似solrelasticsearch之类的东西,但是我们的数据集并不大,每个实体最多有200个元素,有4-5个关联实体。此外,它将保持非常静态,每隔一周会增加一些编辑内容。因此,我们考虑使用浏览器的数据存储来管理和搜索某种索引。问题是,在我们的研究中,除了抽象Web SQLIndexed DB之外,我们找不到更多的东西。

是否有像solr或elasticsearch这样的项目或库可以在客户端用于小数据集?我们正在寻找以下特性

快速search

  • Pre-processing (令牌化,过滤...)

  • Ordering

  • Ranking,查询增强

)

它应该适用于最近的浏览器和其他浏览器(即全文搜索)可以接受的移动的、愚蠢的回退(即全文搜索)。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-06-21 12:14:58

使用IndexedDB是非常麻烦的,我认为如果不做一些修改,它不会做您想做的事情。

WebSql I使用Chrome WebSql (sqlite)和完整文本(FT3),您可以使用它进行一些高级查询,它会自动加权结果。例:

table_ft3 structure=id,姓名,描述,宠物

您可以使用"SELECT id FROM table_ft3 table_ft3 MATCH 'word1 word2 wordfuzzy* -notme +必需的名称:john* mary宠物:狗猫“进行查询。

然而,这只限于Chrome。在一张560 K行的桌子上,每个字约12个字,速度非常快,10毫秒甚至更少。

JSLinq - http://jslinq.codeplex.com/ --这对大数据集很好,通过将所有东西存储在内存中,速度快得可笑,但我不认为它有任何高级权重。它还有一个额外的好处,就是允许您编写自己的复杂查询函数。

JSII - http://karussell.wordpress.com/2010/11/02/jsii-full-text-search-in-1k-loc-of-javascript/,它使用Lucene风格的加权,在20k行上,它以50 is的速度出现,这不是很好,但对您的数据来说可能足够好。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11052135

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档