猿问

使用Algolia PHP API获取构面列表

我需要使用Algolia PHP API从索引中获取所有方面的列表,但似乎找不到支持这种查询的方法

当前的Algolia PHP API是否可以实现?

因此,基本上是突出显示的单词的列表:

一只萌萌小番薯
浏览 202回答 1
1回答

浮云间

选项1鉴于您使用的是PHP,因此属于后端,您可以使用以下代码:$settings = $index->getSettings();然后,您可以了解各个方面$settings['attributesForFaceting']。为了能够调用,getSettings您需要使用已设置settingsACL的API密钥初始化API客户端。因此,可以使用Admin API密钥或为此在仪表板中创建的特定密钥。选项2具有setting对您的API密钥ACL集通常不是在前端的搜索应用程序适当。因此,对于前端实现(显然不是您的情况),search功能就是您所需要的;可以提供一个空的搜索字符串,也可以调整查询以缩短响应时间和大小:$response = $index->search('', [  'attributesToRetrieve' => ['objectID'], // don't retrieve full objects  'hitsPerPage' => 0, // send back an empty page of results anyway  'facets' => '*' // ask for all facets,  'responseFields' => 'facets' // limit JSON response to `facets`]);获得该查询的响应后,您将获得带有以下方面的方面列表:$facets = array_keys($response['facets']);请注意此方法的一个警告:如果索引很大,则响应可能不包含所有构面值。这样做的原因是,像Algolia这样的搜索引擎被设计为在快速的同时具有相关性,而不是被设计为在快速的同时具有穷举性的数据库。结果,当索引太大而无法在一定时间内“浏览”时,Algolia将超时并发回它得到的结果(注意,这是事情发生的基本观点)。选项3我没有您的项目的详细信息,但是您是否研究了Instantsearch.js?这是构建Algolia搜索体验的首选库(或其变体之一)。通过直接调用其API服务器在前端完成所有操作,这是获得快速搜索体验的最佳方法:)
随时随地看视频慕课网APP
我要回答