2016-03-06 71 views
-1

我正在爲使用elasticsearch的網站創建一個內部搜索引擎,主要是因爲我們真的有很多關於mysql的記錄(大約10M),我們想要利用全文搜索。使用Elasticsearch在symfony2上創建一個內部搜索引擎

我們目前正在使用教條與MySQL,所以我有一個特定類型的信息的實體,並在MySQL上搜索時,我用這個實體的數組傳遞給模板。

迄今爲止好。

我的問題主要是關於用於此特定任務的最佳做法。

我是否需要在ES上搜索,然後以某種方式將結果傳遞給模板(仍然需要決定如何),或者我可以簡單地搜索並從ES獲得需要的記錄的ID,然後創建我的實體從MySQL並將它們傳遞給模板?第二個選項可能更容易,我只能在ES上保存我想要執行搜索的數據。

感謝

中號

回答

0

給一個嘗試FOSElasticaBundle。這是一個建立在Elastica之上的高品質圖書館,基本實現了您的第二個選項。

它允許在ES索引中映射您的Doctrine實體的字段,當它們通過Doctrine更新時自動重新索引文檔,並在您執行ES搜索查詢時返回Doctrine實體的實例。

+0

我無法使用ES2.2和symfony 2.8來進行elasticabundle工作,也許是一些兼容性問題,但我已經創建了使用ES php API的抽象。我需要以下信息來決定準確複製哪些字段並在ES上同步... – user3174311

+0

您可以使用此實驗分支:https://github.com/FriendsOfSymfony/FOSElasticaBundle/pull/1002 –