Navigation Menu

Skip to content

Instantly share code, notes, and snippets.

@hiroyuki-sato
Last active August 29, 2015 14:23
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save hiroyuki-sato/8f3e399474ff7cb20ab8 to your computer and use it in GitHub Desktop.
Save hiroyuki-sato/8f3e399474ff7cb20ab8 to your computer and use it in GitHub Desktop.
Groonga data structure

データ例

table_create --name Book --flags TABLE_HASH_KEY --key_type ShortText
column_create --table Book --name title --type ShortText
_id _key title
1 ISBN1 Haskell入門
2 ISBN2 Groonga入門
3 ISBN3 できるErlang
4 ISBN4 Go言語入門
5 ISBN5 三日でできるScala
table_create --name   Terms --flags TABLE_PAT_KEY|KEY_NORMALIZE --key_type ShortText --default_tokenizer TokenMecab
column_create --table Terms --name title_idx --flags COLUMN_INDEX|WITH_POSITION --type Book --source title'
  • title_idxの意味: [単語, [_id, 単語の出現位置]]

次のどちらかのようなデータ構造で値が入っている(と思う)

一つのエントリに一つのIDを格納するような場合

_id _key title_idx
1 [Haskell, [1,0]]
2 [Groonga, [2,0]]
3 [Erlang, [3,3]]
4 [Go, [4,0]]
5 [Scala, [5,6]]
6 [入門, [1,7]]
7 [入門, [2,7]]
8 [入門, [4,4]]
9 [できる, [3,0]]
10 [できる, [5,2]]
11 [言語, [4,2]]
12 [三日, [5,0]]
13 [で, [5,2]]

一つのエントリに複数のIDを格納するような場合

_id _key title_idx
1 [Haskell, [1,0]]
2 [Groonga, [2,0]]
3 [Erlang, [3,3]]
4 [Go, [4,0]]
5 [Scala, [5,6]]
6 [入門, [1,7],[2,7],[4,4]]
7 [できる, [3,0],[5,2]]
8 [言語, [4,2]]
9 [三日, [5,0]]
10 [で, [5,2]]

疑問

  • Termsテーブルの_keyにはどのような値が入るのか?
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment