2016-12-04 65 views
1

我想在具有彈性搜索的實體框架上使用。如何在彈性搜索中使用實體框架

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

但據我所知,我需要2個DB(MS SQL +彈性),他們在那裏解釋如何翻譯數據。

ms sql我將保存數據,並在彈性搜索上完成。

因此,所有的數據將是兩次,這將是存儲的浪費......

是否有任何直接的方式來做到這一點?

謝謝

+0

將你的邏輯分成兩部分,存儲你的ES標準和它的ID,然後使用這些ID從SQL數據庫中檢索。 –

回答

0

是的你明白你需要使用兩個不同的來源。 EF沒有直接的方法來使用elasticsearch,你需要編寫自定義邏輯來將數據庫和Elasticsearch結合在一起。

如果你問爲什麼?答案是數據庫和Elasticsearch是不同的。

首先Elastic是文檔數據庫,您應該在數據庫中保存整個對象時,可以將項目拆分爲ES中的多個表格「preferred」,以另存爲一個文檔(仍然在ES中,您可以使用nested objects但您不會能夠加入)。

其他搜索查詢在SQl和Elastic中完全不同。所以有時候只有你會決定應該使用哪個來源進行搜索。要搜索Elastic,您可以使用NEST包,但您需要學習ES查詢和索引部分,因爲取決於分析,您將得到不同的結果。

1

通過利用ElasticsearchCrud api,可以使用彈性搜索的實體框架。

This article明確解釋了這樣做的步驟。

P.S我寧願不要複製/粘貼在這裏的步驟,它可能看起來是多餘的。