gpt4 book ai didi

java - 使用 java 、Redis、Elastic Search 、Mongo 自动完成

转载 作者:行者123 更新时间:2023-12-02 09:35:36 26 4
gpt4 key购买 nike

我必须实现一个包含超过 500,000 个名称的自动完成功能,之后可能会增加到超过 400 万个名称。

后端是使用 Spring 的 java REST Web 服务调用。我应该使用 MongoDBRedisElasticsearch 来存储和查询/搜索名称?

最佳答案

这是一个关键的搜索用例,MongoDB 和 Redis 非常适合基于键的查找,而不是用于搜索目的,而 Elasticsearch 是一个分布式搜索引擎,专门为此类用例构建。

在选择系统之前,您应该了解您的功能在内部如何工作以及选择它的考虑因素。

您的功能的非功能性需求

  1. 每秒搜索查询总数 (QPS) 是多少?
  2. 您更新文档(即示例中的姓名)的频率。
  3. 名称更新后并出现在搜索结果中的 SLA 是什么?
  4. 您的搜索结果的 SLA。

一些功能要求。

  1. 自动完成名称的前缀、中缀搜索应该是什么样子?
  2. 在向用户显示自动完成结果之前,用户应输入的最少字符数。
  3. 上述要求的变更频率。

Elasticsearch indexed documents in the inverted index and works ontokens match(which can be easily customized to suit businessrequirements), hence super fast in searching. Redis and MongoDB arenot having this structure internally and shouldn't be used for thisuse-case. You shouldn't have any doubt about choosing Elasticsearch overthese to implement Autocomplete.

关于java - 使用 java 、Redis、Elastic Search 、Mongo 自动完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60584099/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com