【问题标题】:Search relationship data laravel scout elasticsearch搜索关系数据 laravel scout elasticsearch
【发布时间】:2019-11-23 00:48:51
【问题描述】:

在使用 scout 弹性搜索时,我还需要对模型及其相关字段使用相同的索引。 我创建了索引,但多个模型未映射到相同的索引。也不会迁移相同模型的相关字段。

例如。

我的索引是lead_index

模型 A 有模型 B

模型 A 是可搜索的模型

模型A和模型B的所有字段都在模型A中提及

模型 A 可以使用索引运行模型更新,但尝试与模型 B 进行映射时会引发错误,因为多个模型无法使用相同的索引进行映射。

【问题讨论】:

  • 你的问题是什么?
  • 需要通过 laravel scout 弹性搜索将相关模型的字段添加到同一索引中
  • Laravel scout 没有 Elasticsearch 引擎。你用什么包?

标签: laravel elasticsearch laravel-scout


【解决方案1】:

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();

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-12-12
  • 2017-02-17
  • 1970-01-01
  • 2023-03-10
  • 1970-01-01
  • 2017-12-13
  • 2015-10-30
相关资源
最近更新 更多