Php Laravel 5.5搜索多个实体
我有一个Laravel 5.5项目。该项目的想法在于制作一个搜索页面,以查找有关第二次世界大战的信息。我有士兵、历史文件和战斗的数据 搜索页面的想法是输入一个单词或一组单词(如谷歌),并在一个查询中过滤士兵、文档和战斗人员的姓名 我一直在调查,但我所发现的只是从一个实体进行搜索,我需要搜索三个实体 我看过Laravel的官方文档,但似乎对一个实体有效Php Laravel 5.5搜索多个实体,php,mysql,laravel,Php,Mysql,Laravel,我有一个Laravel 5.5项目。该项目的想法在于制作一个搜索页面,以查找有关第二次世界大战的信息。我有士兵、历史文件和战斗的数据 搜索页面的想法是输入一个单词或一组单词(如谷歌),并在一个查询中过滤士兵、文档和战斗人员的姓名 我一直在调查,但我所发现的只是从一个实体进行搜索,我需要搜索三个实体 我看过Laravel的官方文档,但似乎对一个实体有效 我的数据库是关系型MySQL。有什么方法可以解决这个问题吗?没有首选的方法在所有模型中进行搜索,但是如果您想在多个模型上进行搜索,那么您必须创建一
我的数据库是关系型MySQL。有什么方法可以解决这个问题吗?没有首选的方法在所有模型中进行搜索,但是如果您想在多个模型上进行搜索,那么您必须创建一个
搜索表,该表将存储所有记录的标题或您想搜索的其他列,并将其作为多态关系进行搜索用于链接其他模型,然后可以通过关系获取结果。
例如:
后模型:
public function search(){
$this->morphMany(Search::class,'searchable');
}
搜索模型:
public function searchable()
{
return $this->morphTo();
}
然后对搜索模型进行搜索,并获取如下结果
$search->search('search text here')->map(function($data){
return $data->searchable; // Fetch post
});
如果您准备好将Elasticsearch添加到您的项目中,您可以使用我的软件包进行此操作
您所说的“实体”是什么意思?我建议您使用全文搜索entity=>model您研究过elasticsearch吗?当实体发生变化时,您可以将它们存储在ES和重新索引数据中…我知道这并不简单。。。