我剛剛開始使用Elastic Search(link)來處理Laravel 5中的所有搜索功能。我將Laravel 5與MySQL一起用於數據存儲和「elasticsearch/elasticsearch」:「 〜1.0「放入我的composer.json文件中,然後在每次模型發生更改時更新彈性搜索索引(this article was very helpful for setting up Laravel observers)模型觀察員。將彈性搜索結果轉換爲Laravel 5 Collection
我可以成功查詢我的數據並獲得我想要的結果,但我想將結果轉換回Laravel模型集合,以便我可以使用Laravel的關係在搜索結果視圖中顯示更多數據。
例如:我查詢了Elastic Search包含單詞「cat」的文章列表,並收到了帶有一系列匹配的典型響應。我想將這個數組轉換回Laravel文章集合,然後我可以使用文章的關係來獲取並顯示所有關聯的評論。
我知道,有幾個Laravel軟件包可能會聲稱使這更容易,但我需要做一些非常複雜的搜索/過濾,我想堅持官方elasticsearch/elasticsearch包,如果可能的話。
有什麼建議嗎?
我一點兒也不熟悉elasticsearch,但我想如果我能幫助你的腦力激盪你可能找到答案。如果elasticsearch返回一個ID數組,你可以在'Article :: whereIn('id',$ elasticsearch_ids) - > with('comments') - > get()''中使用彈性搜索結果來檢索一個正常的雄辯模型。當然這也會導致運行兩個額外的查詢,所以它可能並不理想。 – Azeame
@Azeame,這將是一個很好的解決方案,但它會失去集合的順序/排名。 – BakerStreetSystems