この記事は、AIが作成し、一部を人が修正したものです。
はじめに
フルテキスト検索エンジンの中でも、Typesense、MeiliSearch、Algolia は小規模なプロジェクト向けの選択肢として注目されています。しかし、「a に x を含み、b に y を含む」部分一致検索 が可能かどうかは、プロジェクトの要件に関わる重要なポイントです。本記事では、Algolia での部分一致検索の可否や、Elasticsearch との比較を行います。
Algolia での部分一致検索
Algolia では、全文検索 (query) を利用できますが、特定のフィールドごとに部分一致検索を行うには制限があります。
方法1:query を使った検索(部分一致可能だがフィールド指定不可)
特徴:
xやyを含むデータを全フィールドから検索。- どのフィールドでヒットしたかを制限できない 。
方法2:restrictSearchableAttributes を使う(単一フィールドの検索)
特徴:
aにxを含むデータ、bにyを含むデータを個別に検索可能。- 両方の条件を同時に適用する方法はない 。
Algolia の結論
✅ 部分一致検索は可能だが、複数フィールドの AND 条件は難しい 。
❌ 「a に x を含み、b に y を含む」検索は標準では不可 。
Elasticsearch での部分一致検索
Elasticsearch では、bool クエリを使うことで「a に x を含み、b に y を含む」部分一致検索が可能です。
特徴:
aフィールドにxを含むデータbフィールドにyを含むデータ- 両方の条件を満たすデータのみヒット
✅ 「a に x を含み、b に y を含む」部分一致検索が可能 。
まとめ
| 検索エンジン | 全文検索 | 特定フィールド検索 | 完全一致フィルタ | 部分一致 AND 検索 |
|---|---|---|---|---|
| Algolia | ✅ 可能 | ✅ 可能(単独フィールド) | ❌ 不可 | ❌ 不可 |
| Elasticsearch | ✅ 可能 | ✅ 可能 | ✅ 可能 | ✅ 可能 |
結論:
- 簡単な全文検索を求めるなら Typesense、MeiliSearch、Algolia が適している 。
- 特定フィールドに対する AND 部分一致検索が必要なら Elasticsearch が適している 。
6. 参考リンク
本記事が、全文検索エンジンの選定に役立てば幸いです!