Help us understand the problem. What is going on with this article?

Groongaで学ぶ全文検索 2016-02-26

More than 3 years have passed since last update.

selectについて

selectとは

Groongaを操作するインターフェースであるコマンドのうちレコードを取得するもの。
全文検索ではこのselectが肝になる。
※その他にtable_createやloadなどのコマンドもある。
参考)Groonga主なコマンド
http://groonga.org/ja/docs/tutorial/introduction.html#basic-commands

selectでできること

  1. カラムに対して全文検索(絞りこみ
  2. カラムの完全一致
  3. snippet_html出力
    対象テキスト中から検索キーワード周辺のテキストを抽出できる。
    キーワードは <span class="keyword"></span>で囲まれている
    参考)
    http://groonga.org/ja/docs/reference/functions/snippet_html.html
  4. グルーピングができる
    著者毎にグルーピングした本のレコードを抽出するなどができる。
  5. カラム毎に重みづけして出力順を変更できる
    タイトルを著者名より重視するなどの重みづけができる
    こちらはクエリ毎に指定できる
  6. クエリ言語を解析できる
    例)
    通常キーワードを複数入力した場合AND検索になるが、
    ユーザーが「OR」をキーワードの間に入力した場合
    OR検索できるなどのように、ユーザーが挙動をカスタマイズできる
  7. 集計機能
    下記のような機能がある
    カウント
    合計
    平均
    最大値
    最小値
  8. クエリ展開
    例)
    焼き肉、焼肉、やきにく
    どれで検索されてもヒットするようにできる(あらかじめ登録が必要
  9. 重みの底上げ(カラムの重みづけでレコードを取得した後にプラスで重みをつけられる。
    例1)
    キャンペーン中のレコードは上に出すなど
    レコード単位に出力を変えられるため、よりユーザーが欲しいものを上に表示することが可能。
    例2)
    クリック数が多いものがユーザーが欲しいものだと判断して上に表示するなどもできる
  10. ソートができる
  11. オフセットが利用できる(途中から取得できる
    ページングなどのように途中でデータが追加された場合にも影響を受けたくない場合には、
    offsetを常に0にして指定したidより小さいものだけ表示など範囲を指定して検索するようにする。
    (登録日時を条件にしてもよい)
  12. 複数テーブルをまたいだ検索ができる
    例)
    キーワードを含むコメントを持った記事を抽出するなどができる。
    実現するには記事にコメントの_idを格納するベクターカラムを持つようにする
    後から関連するものが増えた場合にカラムを追加する必要があるが、カラム指向のためコストはそれほど高くない
Why do not you register as a user and use Qiita more conveniently?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away