自动完成用java,Redis的,弹性的搜索,蒙戈

marcg:

我要实现自动完成超过500,000名以后可能增加至超过400万个名字。

后端是使用Spring一个Java REST Web服务调用。我应该使用的MongoDBRedis的Elasticsearch的存储和查询/搜索的名字吗?

OPSTER Elasticsearch忍者:

这是一个非常重要的搜索使用情况和MongoDB和Redis的是基于密钥的查找非常好,并且不使用的搜索目的,而Elasticsearch是一个分布式搜索引擎,专门针对这种用例构建的。

选择系统之前,你应该知道你的特点的内部工作原理,并考虑下面选择它。

为您的功能非功能性需求

  1. 什么是每秒(QPS)总没有的搜索查询?
  2. 如何经常你会被更新的文件(即在您的示例名称)。
  3. 什么是名称后SLA的更新,并在搜索结果来了吗?
  4. SLA的搜索结果。

有些功能要求。

  1. 自动完成应该怎么样子,前缀,中缀上的名字进行搜索?
  2. 最低多少个字符的用户应该显示他们的自动完成结果前键入。
  3. 如何频繁上述要求可以改变。

Elasticsearch索引的令牌匹配(可以很容易地定制,以适应业务需求)的倒排索引文件和作品,因此超级快速的搜索。Redis的和MongoDB没有在内部具有这种结构,不应该被用于该用例,你不应该有任何疑问选择Elasticsearch在这些实施自动完成。

由于是自动完成的最重要的特征之一,有一个优秀的博客,你应该看的懂的Elasticsearcg及其权衡提供了不同的方法。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章