如何在弹性搜索中使用实体框架

SAD*_*987 5 c# entity-framework elasticsearch

我想在具有弹性搜索的实体框架上使用。

我看到了这篇文章MVC APPLICATION WITH ENTITY FRAMEWORK AND ELASTICSEARCH

但据我所知,我需要 2 个 DB(ms sql+elastic),他们在那里解释了如何翻译数据。

ms sql 我将保存数据并在 elastic 上进行搜索。

所以所有的数据都将是两次所以这将是浪费存储......

有没有直接的方法可以做到这一点?

谢谢

Ben*_*min 6

您可以使用ElasticsearchCrud api将实体框架与弹性搜索结合使用。

这篇文章清楚地解释了这样做的步骤。

PS:我宁愿不在这里复制/粘贴这些步骤,因为它可能看起来多余。


Vol*_*hat 3

是的,您理解正确,您需要使用两个不同的来源。没有直接的方法将 elasticsearch 与 EF 结合使用,您需要编写自定义逻辑以将数据库和 Elasticsearch 结合在一起。

如果你问为什么?答案是Database 和Elasticsearch 是不同的。

首先,Elastic 是文档数据库,您应该保存整个对象,而在数据库中,您可以将项目拆分到 ES 中的多个表中,“最好”保存为一个文档(仍然在 ES 中,您可以使用嵌套对象,但您将无法加入)。

其次,SQl 和 Elastic 中的搜索查询完全不同。因此,有时只有您才能决定应使用哪个来源进行搜索。要搜索 Elastic,您可以使用 NEST 包,但您需要学习 ES 查询和索引部分,因为根据分析您将得到不同的结果。