LoginSignup
4
4

Groonga新リリース自慢会 6.0.2 で教わったことまとめ

Last updated at Posted at 2016-04-28

去る 4 月 27 日に弊社 CrowdWorks でGroonga 新リリース自慢会 6.0.2が開催されました :tada:

そこに飛び入り参加させていただいた際に、全文検索についていろいろとご教授いただきました!
そこでお礼の念を込めて、忘れないうちにまとめてみました!

全文検索初心者がまとめた記事なので間違い等があるかもしれません。
その際は 優しく ご指摘頂けると幸いです :bow:

用語

テーブル

Groonga では RDBMS のテーブルと同じようなもの

カラム

Groonga では RDBMS のカラムと同じようなもの

インデックス

Groonga では転置インデックスのこと

転置インデックス

wikipediaによると

転置インデックス(てんちインデックス、Inverted index)とは、全文検索を行う対象となる文書群から単語の位置情報を格納するための索引構造をいう。

とのこと。早く検索結果にたどり着くためのもの(だろう)。

トークナイザー

テキストをトークナイズするモジュールのこと。

トークナイズとは?

検索対象となる文章や、検索キーワードをある任意の塊(トークン)に分解・抽出すること。
(辞書に登録された)単語ごとに分解する方法や、任意の連続文字数毎に区切る方法がある。

このような文章が有った場合、
image

分解する方法は以下の様な方法があります。

■ 単語毎に分ける方法

image

■ 数文字毎に分ける方法(以下の場合2文字毎)

image

○ バイグラム・トリグラム・n-gram ?

トークナイズする際に、特定の文字数毎に区切る方法のこと

バイグラム(bigram) → 2 文字ごとに区切る
トリグラム(trigram) → 鶏肉の重さ...ではなく、3 文字毎に区切る

n-gram → 任意の n 文字で区切る

★ 更なる深みへ...

Groonga ドキュメント 7.8 トークナイザー
Groonga ドキュメント 7.8.2 「トークナイズ」とはなにか

ノーマライザー

クラウドワークスクラウドワークスのような表記ゆれが発生する単語の場合、そのまま保存すると別のものとして扱われてしまいます。
それを防ぐための処理がノーマライズ
以下のように、特定の表記に変更します。

# 例
クラウドワークス → クラウドワークス
クラウドワークス → クラウドワークス
クラウドワークス → クラウドワークス

★ 更なる深みへ...

Groonga ドキュメント 7.7 ノーマライザー


トークナイズしたインデックスを使ってどうやって検索するのか説明を書こうと思ったのですが、ちょっと壮大な記事になりそうだったのと、ちゃんと説明できる自身がなかったので今回は自粛しました...

もちょっと勉強して改めて記事にします 💪

4
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
4