Valkey: 例:Node.jsでValkey検索を利用する

このドキュメントは検索とJSONガイドの一部です。完全なガイドはこちらからご覧いただけます:Valkeyの検索モジュールでJSONドキュメントを保存・検索する

👋 Stackhero ドキュメントへようこそ!

Stackhero では、すぐに利用可能な Valkey クラウド ソリューションを提供しています。主な特長は以下の通りです:

  • Valkey Admin Web UI を標準搭載。
  • メッセージサイズ・転送量が無制限
  • ワンクリックで簡単にアップデート可能。
  • プライベート専用インフラによる最適なパフォーマンスと強固なセキュリティ

時間を節約し、運用をシンプルに:Stackhero の Valkey クラウドホスティング ソリューションは、わずか5分でお試しいただけます!

ValkeyはRedisと同じプロトコルを使用しているため、どのRedisクライアントでも利用可能です。以下は公式 node-redisクライアント を使った例です:

import { createClient, SCHEMA_FIELD_TYPE } from 'redis';

const client = createClient({ url: process.env.STACKHERO_VALKEY_URL_TLS });
await client.connect();

// 起動時に一度だけインデックスを作成
try {
  await client.ft.create(
    'productsIndex',
    {
      name: SCHEMA_FIELD_TYPE.TEXT,
      brand: SCHEMA_FIELD_TYPE.TAG,
      price: SCHEMA_FIELD_TYPE.NUMERIC
    },
    { ON: 'HASH', PREFIX: 'product:' }
  );
} catch (error) {
  if (!error.message.includes('Index already exists')) {
    throw error;
  }
}

await client.hSet('product:1', { name: 'Espresso machine', brand: 'Bianca', price: '459' });

const results = await client.ft.search('productsIndex', '@brand:{Bianca} @price:[0 500]');
console.log(results.total, results.documents);

await client.quit();