问题标签 [laravel-scout]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
868 浏览

php - Aloglia PHP Laravel Scout:如何在单个 API 调用中搜索多个索引?

如何在单个 API 调用中搜索多个索引?

目前我们可以在单索引 vai Laravel 模型级别搜索方法中搜索或在 Algolia PHP 客户端中创建查询搜索调用。

我为 Laravel 找到了以下内容,但它需要 Laravel 5.6,我正在使用 Laravel 5.4:

https://github.com/algolia/scout-extended

这允许使用聚合器模型在多个索引中搜索,但缺少单独的索引/模型分页。

我还发现了这里提到的另一个 Algolia PHP 客户端示例:

Algolia:在 Laravel 中搜索多个索引

但是我如何访问 Laravel Scout 中的 Algolia 客户端以执行上述 multipleQueries() 函数,使用单个索引创建查询和分页?

我一直在 AngularJs 中使用 Algolia 的 javascript 客户端:

https://github.com/algolia/algoliasearch-client-javascript/blob/develop/examples/angular.html

https://github.com/algolia/algoliasearch-client-javascript

在浏览器中直接搜索和显示从 Algolia 服务器到 Angular 的点击以获取多个索引,但由于我升级到 Angular 6 并且 Alglia 的当前库/小部件不支持多个索引搜索,因此我将 Algolia 搜索服务切换到正在运行的后端 web 服务/API在 Laravel 上,我已经使用 Laravel Scout 将模型数据保存到 Aloglia 索引中作为可搜索的。

0 投票
2 回答
933 浏览

laravel - Laravel Scout 不尊重 Algolia 的命令

我尝试使用 Laravel Scout 和 Algolia 作为我的搜索引擎。

我这样用

问题是,Algolia 返回正确的顺序,假设一些带有 id 的记录,3, 1, 2但是当 Laravel 获取数据库上的记录时,id 就像1, 2, 3(按 id 排序)。

我使用 Scout 错了吗?

0 投票
1 回答
1834 浏览

php - Laravel 弹性搜索不提供包含或类似匹配

我想为我所有的 laravel 搜索查询实现弹性搜索。我使用 brew 安装了最新的 Laravel 和最新的 elasticsearch。

curl http://localhost:9200/给,

在这里,我正在使用驱动程序 babenkoivan/scout-elasticsearch-driver

型号,

搜索规则

配置器

我有一个记录ref_numas I50263。所以当我搜索I50相同的时候我应该得到这个记录like query。我尝试了以下所有搜索,但我只得到了完整单词的结果I50263

也尝试过字段类型text

0 投票
4 回答
1693 浏览

laravel - 在 Scout 中使用更复杂的 where 子句

我是 Laravel Scout 的快乐用户。

现在我想扩展我的搜索:

currentStatus 来自https://github.com/spatie/laravel-model-status

现在我收到回复,不支持 currentStatus。我认为在从侦察员返回后过滤 User::search 的结果可能是个好主意?

另一个想法:我想添加更复杂的 where 子句:

也许你有更好的主意?

0 投票
2 回答
883 浏览

php - 从 Laravel Scout 分页链接()中删除查询参数?

我正在使用 Laravel Scout 在我的数据库中搜索对象,并且需要对结果进行分页,但是 Scout 会自动在 url 中包含一个“查询”查询词,除了页码,而不仅仅是页码。

我正在使用 Scout 内置的分页,如下所示: $page_results = Page::search($validatedData['search_terms'])->paginate(10, 'page_results');

问题是,我不仅将页码作为查询获取,而且还得到了另一个“查询”: http://192.168.10.10/wiki/search?query=a&page_results=2

因为我的路线是这样的: Route::post('/search', 'SearchController@search'); 它不期望该查询并将其发送到后备。

有没有办法从 Scout 链接()中删除“查询”查询?理想情况下,我想要的是以下内容,因为通过使用不包含额外查询词的 Eloquent 分页,我可以很好地在其他页面上进行分页: http://192.168.10.10/wiki/search?page_results=2

任何帮助将非常感激!

0 投票
1 回答
159 浏览

laravel - 在 scout:import Laravel 之后数字被格式化为字符串

当我在本地环境中开发网站时,我不得不使用 php artisan scout:import 命令,一切运行良好。但是,一旦我部署了我的应用程序并使用 ssh 使用了相同的命令,我就导入了我的模型,但是将 int 属性呈现为字符串,fe 1 被格式化为“1”。因此,我无法使用 numeric_filters。在这两种情况下我都使用 MySql 数据库。

0 投票
1 回答
828 浏览

php - 索引 users_index 不存在 laravel scout

我正在尝试构建一个搜索功能,它说 users_index 不存在,而它在模型中,App\User.php我不明白为什么它会抛出那个错误?有人可以解释为什么它会抛出错误吗?

错误:索引 users_index 不存在

注意 scout.php 已正确设置为 ALGOLIA_APP_ID 和 ALGOLIA_SECRET' 和'queue' => env('SCOUT_QUEUE', true),

网页.php Route::get('index','SearchController@search')

搜索控制器.php

用户模型

0 投票
1 回答
664 浏览

php - 在搜索 Algolia 索引时使关系数据在 eloquent 集合中可用

我有一个使用Scout Extended集成Algolia搜索功能的Laravel 5.7应用程序。在应用程序中,我有一个名为“Prospect”的模型,它与其他两个模型有belongsTo关系:“State”“FoodCat”

我试图弄清楚在使用 Algolia 索引进行搜索时如何将“State”“FoodCat”的关系数据包含在搜索结果中。

通过在 Prospect 模型中扩展toSearchableArray() ,关系数据已包含在搜索索引中。

[ https://www.algolia.com/doc/framework-integration/laravel/indexing/configure-searchable-data/#relationships]

但是,搜索后,关系数据在 Eloquent 集合中不可用。它只能通过循环原始数据数组来获得......


查看原始数据数组,当原始数据输出时, “State”“FoodCat”关系数据都在搜索索引中可用:

...输出示例:Prospect::search('')->raw()


但是,当搜索索引并将结果提取到一个 eloquent 集合中时,“State”和“FoodCat”数据不可用......

...示例输出:Prospect::search('')->get()

搜索 Algolia 索引后,如何使相同的关系数据可用于 eloquent 集合?


引用此链接 [ https://gist.github.com/Artistan/fea3e21f149fdf845e530299bcff37d4]

...您可以通过分页器访问关系数据,方法是在搜索调用后立即加载关系...

但是我想知道是否有一种方法可以在不使用分页器类的情况下提供相同的数据......

0 投票
4 回答
4104 浏览

laravel - 如何解决此错误“无法连接,请检查您的 Algolia 应用程序 ID”?

正如laravel/algolia网站上所写的,我的一切都是正确的。

我尝试阅读大量有关 Laravel Scout 安装的文档和教程,但仍然找不到解决方案。

我的设置中的所有内容都是正确的,API 也是正确的,但仍然出现此错误:

无法连接,请检查您的 Algolia 应用程序 ID。

0 投票
3 回答
1073 浏览

laravel - Laravel scout 的策略,拥有数百万以上的记录和多个可互换的驱动程序(即 TNT 和 Algolia)

我用过一点 Algolia,这是一项很棒的服务。我还使用了用于侦察的 TNT 搜索驱动程序,它也非常好,但对使用 Algolia 获得的功能、速度和易用性并没有真正的了解。

不幸的是,Algolia 在处理大量记录时变得非常昂贵 - 例如,我们的一个应用程序有超过 1000 万个可搜索行,这将是每月数千美元!

有没有人成功地同时使用这两种方法?即,我想将 Algolia 用于需要更高级搜索功能(10 万条记录)的最近记录或类别,然后使用 TNT 搜索其余部分。

编辑:

Elasticsearch 就是答案。设置起来有点困难,但具有很大的灵活性。我强烈推荐https://github.com/matchish/laravel-scout-elasticsearch将它与 Laravel Scout 无缝连接。