Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/268.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用Laravel Scout设置Algolia索引属性_Php_Laravel_Algolia - Fatal编程技术网

Php 使用Laravel Scout设置Algolia索引属性

Php 使用Laravel Scout设置Algolia索引属性,php,laravel,algolia,Php,Laravel,Algolia,我很喜欢与Laravel Scout和Algolia一起工作,我能够索引我的内容。(我正在使用Algolia JS库执行搜索) 不过,我想获得搜索结果的方面,但这需要在服务器端完成,我不知道如何使用scout实现这一点。例如,如果我想允许检索facets作者和类型,我想设置以下属性: $index->setSettings(array("attributesForFaceting" => array("authors", "type"))); 我可以在JS中这样做,但不知何故,Al

我很喜欢与Laravel Scout和Algolia一起工作,我能够索引我的内容。(我正在使用Algolia JS库执行搜索)

不过,我想获得搜索结果的方面,但这需要在服务器端完成,我不知道如何使用scout实现这一点。例如,如果我想允许检索facets作者和类型,我想设置以下属性:

$index->setSettings(array("attributesForFaceting" => array("authors", "type")));
我可以在JS中这样做,但不知何故,Algolia强烈建议在后端客户端上这样做-Laravel Scout为我:

“请考虑使用后端客户端更改索引设置”


由于不熟悉Laravel Scout,我只在评论部分给出了一般性建议:

  • 您不应将API密钥与搜索以外的其他ACL一起公开给用户
  • Algolia中的设置通常与数据索引同时设置
在了解了Laravel Scout之后,有一种方法可以完全公开
setSettings
方法来实现您想要的


同时,您可能可以扩展
AlgoliaEngine
特性,自己添加此方法,或者只需要一个小脚本来设置这些设置。

Algolia告诉您在后端执行此操作的原因是您需要一个管理API键来设置设置。如果您在前端公开此项,任何有权访问此页面的人都可以检索此API密钥并更改索引。这就是为什么您应该在前端使用搜索API键的原因。但是,没有任何东西阻止您编写JS脚本,在您将此脚本保持为私有的条件下,使用管理API键并设置设置(可能为数据编制索引)。另一条评论:“不过,我想获取搜索结果的方面,但这需要在服务器端完成“-您应该在后端为faceting设置
属性
,但是facets检索应该在前端完成。谢谢@Jerska。我了解该密钥的潜在问题,并使用cusom ACL创建了一个新密钥,允许通过API进行搜索和索引设置。有了这个,我可以通过JS设置索引属性。也就是说,我宁愿按照你的建议和algolia的建议去做,也就是说,在后端这样做。但是我不明白什么时候应该这样做,也就是说,在搜索生命周期中,我应该什么时候在后端设置属性,特别是因为搜索是通过JS发送和返回的?谢谢你的回答。我将致力于扩展AlgoliaEngine,以便为索引设置属性。这应该一直有效,直到有一个更新版本的scout。