Algolia

Algolia とは

検索エンジン SaaS。

どのような用途に向くか

  • EC サイトのように、複数の条件で高速に絞り込んでいきたい場合
  • 高速に検索したい場合

どのような用途に向かないか

  • 増え続けるデータを扱う時
  • Elasticsearch でよくあるログの検索みたいな用途には向いていない

vs. Elasticsearch

https://blog.algolia.com/full-text-search-in-your-database-algolia-versus-elasticsearch/

よい点

  • 検索が高速である(1msec〜数十msec)
  • 複雑な検索クエリを SQL の WHERE 句的な見知った構文で記述できる, Lucene とも似ている。
  • 0 downtime でのインデックスの同期が考慮されているなど、すぐれた API set
  • すぐれたダッシュボード

よくない点

  • インデクシングに必要となる時間が不規則(数秒〜数分)
  • 大量のレコードを取り回そうとすると expensive

ノウハウ

  • 日本語のあいまい検索を行う際には Synonyms の設定が必要("あ、ア、ぁ、ァ" のようなレコードを作る)
  • Algolia の実装としてはあらゆる文字について UCS2 のコードポイントとして参照しているだけなのでコードポイント間の関連は定義してあげないとわからないということ
  • 0 downtime でのインデックスの同時のやり方については Atomic reindexing を参照
  • タグは _tag に入れる
  • フリーワード以外での検索軸になりうる key については facet にしておく

Share this post:
Child pages:

Comments