如何将Redis与ElasticSearch一起使用

时间:2013-09-17 11:35:31

标签: c# redis elasticsearch nest booksleeve

我为ElasticSearch找到了NEST。但我没有意识到Redis和ElasticSearch之间的关系。我将建立一个社交网络,并想知道你是否有一些部分Redis和ElasticSearch的某些部分应该被使用或它们的组合。我使用Redis的项目的哪个部分以及ElasticSearch使用哪个部分以及哪个部分应该是合并使用。

我使用C#,BookSleeve for Redis,ElasticSearch with NEST,ASP.NET MVC

2 个答案:

答案 0 :(得分:9)

这两件事之间几乎没有关系。我怀疑你可能在之前的对话中得到了错误的结尾,在那里你想要在redis中搜索单个值来使用作品(这个问题:How to search content value in redis by BookSleeve)。我试图提出的一点是,这根本不是redis的一个特征。所以你有两个选择:

  • 编写自己的单词提取代码(词干分析器等)并在redis
  • 中手动构建索引
  • 使用旨在为您完成所有这些工作的工具

像ElasticSearch这样的工具(位于lucene之上)很擅长。

或者用其他术语提出问题:

  • X问“如何用螺丝刀将木头切成两半”
  • Y说“使用锯子”
  • X然后询问“如何使用带锯的螺丝刀将木头切成两半?”

答案:你没有。这些事情没有关系。

答案 1 :(得分:2)

实际上,Redis和Elasticsearch可以以一种非常有用的方式组合;如果您正在从源流中将数据推送到Elasticsearch中,并且该数据流突然爆裂并且变成太多数据,以至于您的Elasticsearch实例无法提取,那么它将删除数据。但是,如果您将Redis实例放在Elasticsearch的前面以缓存数据,则您的Elasticsearch实例可以在突发期间幸免而不会丢失数据,因为它将被缓存在Redis中。

那只是一个例子,但还有更多例子。有关如何缓存查询的示例,请参见here