gpt4 book ai didi

Redis全文搜索: reverse indexing or sunspot?

转载 作者:IT王子 更新时间:2023-10-29 05:56:50 25 4
gpt4 key购买 nike

我有 350 万条记录(只读)实际存储在 MySQL 数据库中,出于性能原因我想将其提取到 Redis。实际上,我已经设法将这样的东西存储到 Redis 中:

1 {"type":"Country","slug":"albania","name_fr":"Albanie","name_en":"Albania"}
2 {"type":"Country","slug":"armenia","name_fr":"Arménie","name_en":"Armenia"}
...

我在这里使用的 key 是遗留的 MySQL id,因此使用一些 Ruby 胶水,我可以尽可能少地破坏这个现有应用程序(这是一个严重的问题)。

现在的问题是当我需要在值部分内对关键字“亚美尼亚”执行搜索时。似乎只有两条出路:

要么我乘以 Redis 索引:

我要么使用 sunspot,要么使用一些全文搜索引擎(不幸的是,我实际上使用的是 ThinkingSphinx,它与 MySQL 的联系太紧密了:-(

那么,你会怎么做?您认为将单个表从 MySQL 迁移到 Redis 是个好主意吗?我担心那些巨大的 Redis 键/值可能占用 16GB RAM 服务器的内存占用空间。

对类似的 Redis 使用有任何反馈吗?

最佳答案

在开始给出真正的答案之前,我想说明一下,我认为您没有理由在这里使用 Redis。根据您尝试执行的用例类型,听起来像是 elasticsearch会更适合你。

也就是说,如果您只想在 JSON 中搜索几个不同的字段,您有两个选择:

  1. 指向 field_key -> list_of_ids 的辅助索引(在你的例子中,“Armenia” -> 1)。
  2. 在 Redis 之上使用 Lua 进行 JSON 编码和解码以获得您想要的内容。这种方式更加灵活且节省空间,但会随着表格的增长而变慢。

同样,我认为两者都不适合您,因为听起来 Redis 对您来说不是一个不错的选择,但如果您必须这样做,它们应该会起作用。

关于Redis全文搜索: reverse indexing or sunspot?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17133866/

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