Algolia:在 Laravel 中搜索多个索引

Posted

技术标签:

【中文标题】Algolia:在 Laravel 中搜索多个索引【英文标题】:Algolia: searching multiple indices in Laravel 【发布时间】:2018-09-25 13:06:02 【问题描述】:

我想设置 algolia 以在 Laravel 中搜索多个索引,使用类似这样的简单方法。

Route::get('/search/query', function ($query) 
$queries = [
    [
        'indexName' => 'movies_index',
        'query' => $query,
        'hitsPerPage' => 3
    ],
    [
        'indexName' => 'directors',
        'query' => $query,
        'hitsPerPage' => 3,
    ],
    [
        'indexName' => 'screenwriters',
        'query' => $query,
        'hitsPerPage' => 10
    ]
];



var_dump($queries););

但我也是 laravel 和 algolia 的初学者,所以我不完全确定如何继续。

【问题讨论】:

您使用的是Laravel Scout 还是Algolia php library? @HCK Laravel 侦察兵 【参考方案1】:

根据Algolia Docs 状态:

// perform 3 queries in a single API call:
//  - 1st query targets index `categories`
//  - 2nd and 3rd queries target index `products`

$queries = [
  [
    'indexName' => 'categories',
    'query' => $myQueryString,
    'hitsPerPage' => 3
  ],
  [
    'indexName' => 'products',
    'query' => $myQueryString,
    'hitsPerPage' => 3,
    'facetFilters' => 'promotion'
  ],
  [
    'indexName' => 'products',
    'query' => $myQueryString,
    'hitsPerPage' => 10
  ]
];

$results = $client->multipleQueries($queries);

var_dump($results['results']);

别忘了先初始化你的$client

$client = new \AlgoliaSearch\Client('APP_ID', 'APP_KEY');

【讨论】:

以上是关于Algolia:在 Laravel 中搜索多个索引的主要内容,如果未能解决你的问题,请参考以下文章

如何访问 javascript 中的 laravel .env 变量?

在Laravel中,当我直接用数据库更新内容时,我怎样才能保持搜索索引有正确的数据更新?

Scout Laravel Algolia search too 查询

为 Algolia 搜索结果正确使用 Facets

在产品视图中显示 Algolia 结果

使用 Algolia 的 Firestore 数据库