我刚刚开始使用弹性搜索(link)来处理Laravel 5中的所有搜索功能。我正在使用Laravel 5和MySQL进行数据存储,并且#34; elasticsearch / elasticsearch": "〜1.0"在我的composer.json文件中,然后模型观察者在每次模型更改时更新弹性搜索索引(this article was very helpful for setting up Laravel observers)。
我可以成功查询我的数据并获得我想要的结果,但我想将结果转换回Laravel模型集合,以便我可以使用Laravel的关系在搜索结果视图中显示更多数据。
例如:我向Elastic Search查询了包含单词" cat"的文章列表。并获得了一系列点击的典型回复。我想将此数组转换回Laravel文章集合,以便我可以使用文章的关系来获取并显示所有相关的评论。
我知道有几个Laravel软件包可以声称这样做更容易,但我需要做一些非常复杂的搜索/过滤,我想坚持使用官方的elasticsearch/elasticsearch软件包,如果可能的话。
有什么建议吗?
答案 0 :(得分:1)
使用像ElasticSearch这样的NoSQL数据库的优势很快就会消失。
也许您可以做的是为ES中的每篇文章存储最新的更新评论,但是当您只想显示一篇文章时,您会选择MySQL版本。
文章模型可能看起来像是。
{
"id": 1,
"title": "Lorem"
"comments" {
{
"id": 1
"message": "First comment"
},
{
"id": 2
"message": "Second comment"
}
}
}
对我来说,只检索ES中的id到SQL后面的grap te元素