この記事は、AIが作成し、一部を人が修正したものです。

はじめに

フルテキスト検索エンジンの中でも、Typesense、MeiliSearch、Algolia は小規模なプロジェクト向けの選択肢として注目されています。しかし、「a に x を含み、b に y を含む」部分一致検索 が可能かどうかは、プロジェクトの要件に関わる重要なポイントです。本記事では、Algolia での部分一致検索の可否や、Elasticsearch との比較を行います。


Algolia での部分一致検索

Algolia では、全文検索 (query) を利用できますが、特定のフィールドごとに部分一致検索を行うには制限があります。

方法1:query を使った検索(部分一致可能だがフィールド指定不可)

index.search('xy')

特徴:

  • xy を含むデータを全フィールドから検索。
  • どのフィールドでヒットしたかを制限できない

方法2:restrictSearchableAttributes を使う(単一フィールドの検索)

i}i}n)n)dr;dr;eeeexsxs.t.tsrsreieiacacrtrtcScShehe(a(a'r'rxcyc'h'h,a,abb{l{leeAAttttrriibbuutteess::[[''ab'']]

特徴:

  • ax を含むデータ、by を含むデータを個別に検索可能。
  • 両方の条件を同時に適用する方法はない

Algolia の結論

部分一致検索は可能だが、複数フィールドの AND 条件は難しい
「a に x を含み、b に y を含む」検索は標準では不可


Elasticsearch での部分一致検索

Elasticsearch では、bool クエリを使うことで「a に x を含み、b に y を含む」部分一致検索が可能です。

G{}ET"}qmu"}yeb_ro"]iyomn"lu{{d:"se:t""x{"mm/{:aa_tts[ccehha""r::ch{{""ab""::""xy""}}}},

特徴:

  • a フィールドに x を含むデータ
  • b フィールドに y を含むデータ
  • 両方の条件を満たすデータのみヒット

「a に x を含み、b に y を含む」部分一致検索が可能


まとめ

検索エンジン全文検索特定フィールド検索完全一致フィルタ部分一致 AND 検索
Algolia✅ 可能✅ 可能(単独フィールド)❌ 不可❌ 不可
Elasticsearch✅ 可能✅ 可能✅ 可能✅ 可能

結論:

  • 簡単な全文検索を求めるなら Typesense、MeiliSearch、Algolia が適している
  • 特定フィールドに対する AND 部分一致検索が必要なら Elasticsearch が適している

6. 参考リンク

本記事が、全文検索エンジンの選定に役立てば幸いです!