Posted at

Groongaで学ぶ全文検索2016-08-26に出席して学んだこと

More than 3 years have passed since last update.


概要

Groongaで学ぶ全文検索に出席して学んだことを書きます。


属性検索

なにを検索するか:

・旅行のプラン

・ホテル

絞り込み項目:

・エリア(東京)

・種類(ホテル・旅館・温泉)

・日程

・説明

目標:

・早く検索したい

・精度よく検索したい

アプローチ:

・テキストをキーワード毎に分解して見出しとしてインデックスに登録する。形態素解析を使ったりする。

・n-gramで分解する。※問題点として、隣り合っているかどうかを調べなければならない。

pg-bigmはテキストにあるかどうかを直接調べる。Groongaはキーワードが何番目に出現したかをデータにとっておく。

・絞り込み項目と一致するものに高いスコアを与える。


メモ

インデックスとは:

・検索を早くするためのもの

・実現方法はツリーまたはハッシュなど、実装に依存する。

スコアとは:

・ユーザが必要としていると思われる度合い

n-gramのnは多いほうが良いのか:

・nの数値が大きくなると比較回数が減るため検索速度は向上するが、ヒットしない単語が増えていく。日本語は一文字で成立する単語が多いなど、nが大きければよいものではない。


感想

それぞれの方法にメリットとデメリットがあり、奥が深いと思いました。