技能 编程开发 Algolia搜索服务集成指南

Algolia搜索服务集成指南

v20260423
algolia-hello-world
本指南为开发者提供了全面的Algolia搜索服务集成教程。它涵盖了核心操作,包括使用`saveObjects`索引记录、执行精准搜索、以及配置索引设置(如自定义排序和分面)。此外,内容还演示了多索引联查和全量浏览等高级应用,适用于需要构建或优化搜索后端的新开发项目。
获取技能
366 次下载
概览

Algolia Hello World

Overview

Index records into Algolia and search them back — the two fundamental operations. Uses the algoliasearch v5 client where all methods live on the client directly (no initIndex).

Prerequisites

  • algoliasearch v5 installed (npm install algoliasearch)
  • ALGOLIA_APP_ID and ALGOLIA_ADMIN_KEY environment variables set
  • See algolia-install-auth for setup

Instructions

Step 1: Index Records with saveObjects

import { algoliasearch } from 'algoliasearch';

const client = algoliasearch(
  process.env.ALGOLIA_APP_ID!,
  process.env.ALGOLIA_ADMIN_KEY!
);

// saveObjects adds or replaces records. Each must have objectID
// (or Algolia auto-generates one).
const { taskID } = await client.saveObjects({
  indexName: 'movies',
  objects: [
    { objectID: '1', title: 'The Matrix', year: 1999, genre: 'sci-fi' },
    { objectID: '2', title: 'Inception', year: 2010, genre: 'sci-fi' },
    { objectID: '3', title: 'Pulp Fiction', year: 1994, genre: 'crime' },
  ],
});

// Wait for indexing to complete before searching
await client.waitForTask({ indexName: 'movies', taskID });
console.log('Indexing complete.');

Step 2: Search with searchSingleIndex

// Basic search — Algolia searches all searchableAttributes by default
const { hits } = await client.searchSingleIndex({
  indexName: 'movies',
  searchParams: { query: 'matrix' },
});

console.log(`Found ${hits.length} results:`);
hits.forEach(hit => {
  // _highlightResult shows which parts matched
  console.log(`  ${hit.title} (${hit.year})`);
});

Step 3: Configure Index Settings

// Settings define how Algolia ranks results
await client.setSettings({
  indexName: 'movies',
  indexSettings: {
    searchableAttributes: ['title', 'genre'],       // Fields to search
    attributesForFaceting: ['genre', 'year'],        // Filterable fields
    customRanking: ['desc(year)'],                   // Tie-breaker: newer first
    attributesToRetrieve: ['title', 'year', 'genre'],// Fields returned in hits
  },
});

Output

Indexing complete.
Found 1 results:
  The Matrix (1999)

Error Handling

Error Cause Solution
Invalid Application-ID or API key Wrong credentials Verify in dashboard > Settings > API Keys
Record is too big Object > 10KB (free) or 100KB (paid) Reduce record size or split into smaller records
Index does not exist (on search) Index not created yet saveObjects auto-creates the index
taskID never resolves Indexing queue backlog Check dashboard > Indices > Operations

Examples

Multi-Index Search (federated)

// Search multiple indices in one API call
const { results } = await client.search({
  requests: [
    { indexName: 'movies', query: 'inception' },
    { indexName: 'actors', query: 'inception' },
  ],
});

results.forEach(result => {
  if ('hits' in result) {
    console.log(`${result.index}: ${result.hits.length} hits`);
  }
});

Browse All Records (no query, iterate everything)

// browse returns up to 1000 records per call — use for data export
const { hits, cursor } = await client.browse({
  indexName: 'movies',
  browseParams: { hitsPerPage: 1000 },
});

console.log(`First page: ${hits.length} records`);
// Use cursor to fetch next pages

Delete Records

// Delete by objectID
await client.deleteObject({ indexName: 'movies', objectID: '3' });

// Delete by query match
await client.deleteBy({
  indexName: 'movies',
  deleteByParams: { filters: 'genre:crime' },
});

Resources

Next Steps

Proceed to algolia-local-dev-loop for development workflow setup.

信息
Category 编程开发
Name algolia-hello-world
版本 v20260423
大小 4.61KB
更新时间 2026-04-26
语言