我找不到有关如何使用Laravel Scout检查索引是否存在的文档。
我用它来搜索。我的模特有可搜索的特性。
这是我希望访问索引和检查搜索结果的方式:
$tasks = Task::search(
query: trim($query) ?? '',
)->take(self::NUMBER_OF_SEARCHRESULTS_PER_MODEL)->get();
我得到的是“没有找到MeiliSearch \ Exceptions \ ApiException索引tasks
”。
另一个奇怪的行为是,尽管我之前执行了scout:import "App\Models\Task"
,它告诉我所有记录都已经导入,但如果DB中没有记录,meilisearch不会创建索引。
因此,上面的代码会导致异常。
我现在想做的是防止这种情况的发生,就像这样:
$tasksScoutBuilder = Task::search(
query: trim($query) ?? '',
);
$tasks = ($tasksScoutBuilder->indexExists()) ? $tasksScoutBuilder->take(self::NUMBER_OF_SEARCHRESULTS_PER_MODEL)->get() : collect();
如何检查模型的索引是否存在?
1条答案
按热度按时间x4shl7ld1#
在配置www.example.com之前,您可以model.you覆盖模型上的searchableAs方法,如果索引不存在,Laravel将抛出异常,如index_not_found_exception,例如