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

laravel - 使用 insert() 并进行批量插入似乎不会触发带有侦察员的插入到 Algolia

我正在 Laravel 中进行批量插入,例如

这将执行批量插入,一个查询,但仍一次插入许多行。

问题是当我使用insert()行时不会插入到 Algolia。那么我怎样才能对 Algolia 进行批量插入呢?

我不想遍历我的行并一次插入,因为这将花费额外的请求

0 投票
3 回答
976 浏览

php - 如何搜索是否存在关系?

我使用 Algolia 作为我的搜索驱动程序,我只是试图根据他们是否有关系的事实来搜索我的用户记录。

我使用 Laravel Scount 并想搜索所有拥有餐厅的用户然后列出它们,但我收到的错误是

带有消息“调用未定义的方法 Illuminate\Database\Query\Builder::search()”的 BadMethodCallException

如何根据关系进行搜索?

0 投票
1 回答
2909 浏览

php - Elasticsearch 与其他类型的现有映射冲突

我是 Elasticsearch 的新手,我正在使用Elasticsearch Scout Driver在我的 Laravel 项目中实现它,但是在索引中插入模型对象时出现错误。

该模型是Post,制作如下:

在模型类中,我声明了映射选项,我报告了我的映射选项:

每次我打电话$post->searchable();将我的模型放入我的 Elasticsearch 索引时,我都会遇到这个错误:

我猜问题是财产 的null价值。我需要,因为我使用Laravel进行管理:任何其他值都会导致 Laravel 框架的软删除(查询时不检索元素)。deleted_at deleted_at == nullsoft deletion

正如你所看到的,我试图把,ignore_malformed => true但它对我不起作用。我试图添加另一个选项null_value => NULL但没有成功。

我哪里错了?

如何在我的 Elasticsearch 索引中插入帖子,并将deleted_at属性设置为null OR设置为 date with format yyyy-MM-dd HH:mm:ss

谢谢

PS:我使用的是 Elasticsearch 版本 6.1.2。

0 投票
3 回答
601 浏览

laravel - 当 objectId 不是主键时,Scout Algolia 不会删除

当我将模型导入 Algolia 时,我将 ObjectId 更改为另一个字段的值。但似乎当我在我的对象上调用 delete() 时,它并没有从 Algolia 中删除它。为了更清楚,这里有一个例子:

用户{ id,电子邮件名称}

Algolia 用户 {objectId :email,name}

有没有办法解决这个问题?scout 是否有类似于 toSearchableArray 的覆盖原始删除功能的功能?

编辑:我已在Scout GitHub 上为任何感兴趣的人请求此功能

0 投票
1 回答
630 浏览

laravel - 如果查询为空白,如何将 Algolia 设置为不返回任何结果 Laravel & Vue Instant Search

嘿,我在我的新 Laravel 项目中使用了 Algolia,但我了解到 Algolia 会显示我拥有的所有数据“Titel - description”。

我想要的只是在搜索框中输入内容时显示结果。

我的 HTML 代码

后模型

0 投票
1 回答
348 浏览

php - Algolia:如何使用以下数据创建细化列表

我正在尝试使用以下产品数据创建一个细化列表:

  1. 表 1:产品
  2. 表 2:产品详细信息。

使用 Table Product,可以完美地检索所有所需的数据,创建一个非常类似于 algolia 电子商务百思买示例的 json 文件。

另一方面,表 2 -> 产品详细信息具有以下结构:

如您所见,1 个单品可以显示 3 个以上的 facet 选项。

  1. 操作系统
  2. 语音激活
  3. 处理器速度

但我不知道如何构造该数据以创建这样的细化列表:

在此处输入图像描述

例如,我如何创建 json 以允许人们使用操作系统进行优化。

我试过类似的东西:

但在这个例子中我收到错误:

非法偏移类型

任何例子表示赞赏。我将 Laravel Scout 与 Algolia 一起使用。


基于用户@daniel-h 方法,我更新了我的代码。

目前我正在接收 array_merge(): Argument #1 is not an array


更新:

解决方案是:

0 投票
1 回答
1150 浏览

laravel - Laravel scout Algolia 无论如何从搜索索引中删除一个项目而不从本地数据库中删除它

我知道我可以通过以下方式从搜索索引中删除一个项目:

或者

但我只想将其从搜索索引/Algolia 中删除并仍将其保留在我的本地数据库中,这可能吗?

0 投票
2 回答
825 浏览

laravel - laravel scout 什么时候触发 shouldBeSearchable

假设我有一个shouldBeSearchable()这样的集合:

默认情况下,在我的应用程序中,新创建的帖子将is_active设置为1,因此它将被添加到我的搜索索引中。

但是,如果我现在更新同一个帖子并将is_active 设置0,它会自动从我的搜索索引中删除吗?

0 投票
1 回答
1184 浏览

laravel - laravel scout 在更新时临时禁用 toSearchableArray

是否可以toSearchableArray在更新记录时禁用,或者有没有办法只更新搜索索引中记录中的特定字段?

例如:

现在唯一的问题是每次我更新一条记录时,它也会重置它的 Uploaded_at 时间戳并重新加载关系,这是我不需要的另一个查询,因为它在我创建项目时已经设置了它。

那么有什么办法可以暂时禁用toSearchableArray吗?我只需要更新索引行中的几个字段,因此无需重新运行 toSearchableArray 中的所有内容

像下面一样只更新标题,然后在我的 algolia 索引中更新标题,而无需再次重置uploaded_at或加载category关系

0 投票
2 回答
824 浏览

laravel - 使用 InstantSearch 显示所有方面

因此,我尝试将默认设置更改为从 Algolia 获取构面,即 10。我正在使用LaravelwithLaravel-ScoutVue.jswith InstantSearch.js。由于 Vue 为我提供了显示我使用的方面的模板:

这样我只能得到 10 个。我尝试使用Laravel-scout-settings. 下载设置并尝试添加maxFacetsHits : 30,当我将它们推回去时,没有发生任何变化。是否可以使用他们的模板包装器实际编辑这些设置,或者我将不得不使用InstantSearchjs 方式通过 js 文件添加所有小部件和设置。

感谢您的时间。

编辑:总之我的问题是如何显示更多的方面?