使用侦察员弹性搜索时,我还需要为模型及其相关字段使用相同的索引。 我创建了索引,但是多个模型没有映射到相同的索引。同样,对于相同模型,相关字段不会迁移。
例如。
我的索引是lead_index
模型A具有模型B
模型A是可搜索的模型
在模型A中提到了模型A和模型B的所有字段
使用模型A运行带有索引的模型更新很好,但是由于无法使用相同的索引映射多个模型,因此在尝试与模型B映射时会引发错误。
答案 0 :(得分:0)
Laravel Scout具有raw
方法,因此您可以自己映射结果
$modelB = new SearchResults(ModelA::search('zonga')->raw())->first()->modelB;
如果您需要在多个模型之间进行搜索,请考虑使用具有多模型搜索功能的引擎。 https://github.com/matchish/laravel-scout-elasticsearch#search-amongst-multiple-models
Mixed::search('title:Barcelona or to:Barcelona')
within(implode(',', [
(new Ticket())->searchableAs(),
(new Book())->searchableAs(),
]))
->get();