【发布时间】:2019-01-04 03:32:54
【问题描述】:
这是我的情况、背景和困境。
情况
我对 Laravel 还很陌生,仍在学习中。我最近安装了 TNTSearch 和 Laravel Scout,并且能够使用以下配置创建模型索引。我使用控制台命令php artisan tntsearch:import "App\Models\Product"创建了索引,并且可以使用App\Models\Product::search($keyword)->get()成功进行模糊搜索。
config/scout.php
'tntsearch' => [
'storage' => storage_path() . '/index',
'fuzziness' => 'auto',
'fuzzy' => [
'prefix_length' => 2,
'max_expansions' => 50,
'distance' => 4,
],
'asYouType' => true
],
上下文
我有一个 SQL 数据库表,其中包含每个省(加拿大项目)分段的超过 3 万条产品记录,我不想搜索整个索引然后按市场过滤,而是想为每个市场创建一个索引并启动搜索给定的市场。我相信它会加快搜索速度并避免返回结果,这些结果稍后会被丢弃!所以基本上每个省都有一个产品索引文件(即products_on.index,products_qc.index,...)
困境/问题
我无法找到如何创建这样的索引、让它自动更新以及如何使用它。我在互联网上搜寻教程/指导,只能找到我几乎无法汇总的稀缺信息。如果有人能指出正确的方向或指导我如何实现这样的事情,我将不胜感激。
没有答案是错误的,任何点点滴滴的信息都可以极大地帮助我“跟上进度”。
编辑(2018 年 7 月 30 日):
我仍然没有找到我的请求的答案,但我搜索的越多,我就越能得出结论,搜索索引与模型“绑定”,并且每个模型不可能有多个索引。因此,我必须从原始Listings 模型(Listings_QC、Listings_ON、...)为每个市场创建一个模型扩展。然后为每个市场创建一个索引并从中搜索 (Listings_QC::search(...))。
我不热衷于根据数据创建模型!这是一个好的方法/做法吗?
【问题讨论】: