问题标签 [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 投票
1 回答
667 浏览

laravel-5.4 - Laravel Scout 中的 toSearchableArray() 覆盖所有者

一个用户可以创建、编辑和删除模型。所有其他用户也可以更新该模型(通过喜欢它)。现在,当不是条目创建者的用户更新模型时,创建者会被更新它的用户覆盖。

基本上,这就是将数据推送到 Algolia 索引时发生的情况:

当记录由与创建者不同的用户更新时,$user 不是创建者,而是更新记录的人。这样,创建者就会被覆盖,这是我需要避免的。

是否可以只更新索引记录中的单个值,而不是整个记录?我可以看到更新模型的唯一方法是在控制器中执行以下操作:

但这会更新整个记录,这与创建者用户 ID 不同。

0 投票
0 回答
59 浏览

laravel - 断言模型不可搜索

我正在构建一个系统来管理我公司的一些文章,使用 Laravel 和 Laravel Scout 以及 Algolia 作为搜索后端。

其中一项要求规定,每当文章中的某些内容发生更改时,都会保留备份,以便我们可以证明某些信息是在特定时间显示的。

我通过在更新之前克隆现有文章及其所有关系来实现这一点。这是文章模型上的方法:

问题是$replica->save()线路。我需要先保存模型,以便在同步关系时它有一个 ID。

但是:阻止 scout 索引模型的唯一原因是模型的archived_at字段是否设置为任何非null值。但由于这是原始模型的克隆,因此该字段null按预期设置,并且仅在克隆过程完成后更改。

问题: Scout 正在将克隆模型同步到 Algolia,所以我在那里有重复。我知道如何通过将克隆调用包装到withoutSyncingToSearchhttps://laravel.com/docs/5.6/scout#pausing-indexing)回调中来解决这个问题。但是由于这非常重要并且错误已经存在,我希望有一个单元测试来支持我,它确实没有同步到 Algolia。我不知道如何测试这一点,并且寻找一种测试 Scout 的方法只会导致答案告诉我不要测试 Scout,而是我的模型可以被索引等。

问题:如何创建一个单元测试来证明克隆模型没有同步到 Algolia?

目前我正在考虑创建一个自定义的 Scout 驱动程序进行测试,但对于测试一个单一的功能来说,这似乎是一种过大的杀伤力。

0 投票
1 回答
809 浏览

javascript - 如何在 vue 即时搜索中创建自定义细化列表?

我正在使用 Laravel Scout 和 alogolia 作为驱动程序。由于我在前端有 vue,所以我尝试了 vue 即时搜索包,效果非常好。

我面临的问题是我需要将其自定义为我们正在使用的应用内样式。

细化科

这是我要自定义的特定组件。它尝试了像它们在样式部分中显示的那样的类,但这对我来说并不适用,因为我需要在其中添加更多标签和属性。

现在我知道我可以像这样开始编写一个内联模板,但我还不明白如何获取改进的值,以便我可以制作复选框,以及如何在它们被选中后将它们发送回组件. 任何帮助表示赞赏。

0 投票
0 回答
302 浏览

laravel - Laravel Scout 队列性能

因此,根据Laravel Scout Doc,启用 Queue 应该会提高性能,并且应该将数据同步变为异步。我已将我的队列驱动程序设置为 Amazon SQS,并且我可以确认我的侦察同步正在通过它并且它正在工作。但是,与 false 相比,当队列设置为 True 时,我的性能似乎更差。

为了测试,我做了一个简单的端点,没有队列,响应时间约为 0.1 秒,队列约为 0.4 秒。这对我来说很奇怪。我已将日志放在我的代码中,它似乎并没有异步执行。Scout 或 Algolia 似乎存在问题。

我想知道是否有人以前经历过这种情况或知道发生了什么。

PS:我的球探正在使用 Algolia

0 投票
0 回答
302 浏览

php - 带有弹性搜索的 Laravel scout - 响应缓慢

这是我的场景:

我正在开发一个基于Laravel 5.5的应用程序,该应用程序使用ScoutElasticSearch 驱动程序来执行研究。Laravel 应用程序正在使用内置服务器(php artisan serve)运行。

我的 elasticsearch 集群使用Laradock environment在docker上运行。我有一个包含以下项目的索引:

该索引包含大约 1000 个项目,如上一个。我正在使用这样的查询测试性能:

使用 POST 方法直接调用 elasticsearch 实例的性能结果: http://localhost:9200/artworks/_search?pretty=true --> ~50ms

调用我的应用程序的性能结果: http://localhost:8000/api/v1/artworks/search?query=Manuela Gulgowski --> ~3500ms

两种方法每页返回 10 个元素。

我的方法很简单:

有人知道我是否遗漏了什么或者我可以通过哪种方式提高性能? 我完全理解使用我的应用程序 api 我无法获得 50 毫秒的响应,但我希望它至少会在 600-700 毫秒内响应。

更新 经过大量测试,我发现我的应用程序有时会在 ~900 毫秒内响应,有时在 ~3500 毫秒内响应,这种延迟差异是由 Scout 驱动程序中的分页引起的。

我要进一步调查。

0 投票
1 回答
83 浏览

php - Laravel Scout algolia 非对象

我正在使用 laravel 创建一个 crud 应用程序,并使用 scout 和 algolia 来执行搜索功能。但是,当我执行 scout:import "App\Majors" 时,它会引发“尝试获取非对象的属性”错误。下面是我的模型。

0 投票
1 回答
417 浏览

laravel - 调用未定义的方法 Illuminate\Database\Query\Builder::makeAllSearchable() Laravel Scout Algolia

我刚开始使用 Laravel Scout 和 Angolia 驱动程序。我在导入模型时遇到问题。起初,我导入了 App\Agency,它被导入了。但是当我尝试导入模型的其余部分时,它会产生错误Call to undefined method Illuminate\Database\Query\Builder::makeAllSearchable()

第一次进口

和另一个进口

我把使用 Searchable;在模型中。

0 投票
0 回答
27 浏览

laravel - 递归地将模型添加到 Scout Laravel

我有三张桌子

我希望能够在 AkteController 中搜索 Ms->attribute。

我将 lvs 添加到可搜索数组:

是否可以将 lvs.M 添加到 Akte SeachableArray?

0 投票
1 回答
1130 浏览

laravel - Laravel Scout 导入现有数据不起作用

那里,

我安装了 Laravel Scout。如果我现在创建一条新记录,它将被正确导入 Algolia。编辑和删除也有效。但现在我想导入所有现有的组织。当我运行命令时:

但是,没有组织被写入索引。我还需要在某处指定任何内容吗?

0 投票
2 回答
3507 浏览

laravel - Elasticsearch 和 Laravel scout-elasticsearch-driver 返回一个空响应

首先,我将 scout-elasticsearch-driver 用于 Laravel Scouthttps ://github.com/babenkoivan/scout-elasticsearch-driver

我一步一步地按照自述文件,创建索引,迁移索引,配置映射并User::search()->get()返回一个空数组。

显然我的数据库已迁移和填充。

我想通过以下方式搜索用户:

  • 他的名字
  • 他的姓氏
  • 他的昵称

所以我创建了一个IndexConfigurator

创建了一个SearchRule

相应地配置了我的用户模型

我错过了什么吗?

编辑1: 对elasticsearch集群的curl请求的结果

curl -XGET 在 http://localhost:9200

编辑2:

用户索引的实际映射

产生的查询的打印:

解释弹性搜索请求

编辑 3 Laravel scout 和 elasticsearch 驱动程序配置:

scout_elastic.php

侦察兵.php

编辑 4:更新了弹性搜索映射

给出: