rabbit-slide-kou-postgresql-unconference-tokyo-2015 2015.5.30.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: f5e53912160ba5bc587ebde036b4e1deab20f76e
4
+ data.tar.gz: 8c1c02fe2600c5cfd751d2b798b9c45ddeda9440
5
+ SHA512:
6
+ metadata.gz: 06cc8578f2c80bdb02ccf2eaa1c774d3cd82602acd6db557ab84bb4e6af85b05835cdf37921ee05961641fc9b611a95b34e43d55d16b433065a40993ba39b8e9
7
+ data.tar.gz: 8b1b8b2ba69a2d8581738c046980919e95f5f38951cb5ada45cc8c143df854875f4d980d1a0255106b35407d381a1c02f3a9490c50d6e7e1ade02ac8f3065010
data/.rabbit ADDED
@@ -0,0 +1 @@
1
+ postgresql-japanese-full-text-search-like-pg-bigm-pgroonga.rab
data/README.rd ADDED
@@ -0,0 +1,33 @@
1
+ = PostgreSQLで日本語全文検索 - LIKEとpg_bigmとPGroonga
2
+
3
+ PostgreSQLアンカンファレンス@東京(2015/5/30)でPostgreSQLの日本語全文検索まわりについて紹介した資料です。
4
+
5
+ == ライセンス
6
+
7
+ CC BY-SA 4.0
8
+
9
+ 原著作者名には以下のどちらかを使ってください。
10
+
11
+ * 須藤功平
12
+ * Kouhei Sutou
13
+
14
+ == 作者向け
15
+
16
+ === 表示
17
+
18
+ rake
19
+
20
+ === 公開
21
+
22
+ rake publish
23
+
24
+ == 閲覧者向け
25
+
26
+ === インストール
27
+
28
+ gem install rabbit-slide-kou-postgresql-unconference-tokyo-2015
29
+
30
+ === 表示
31
+
32
+ rabbit rabbit-slide-kou-postgresql-unconference-tokyo-2015.gem
33
+
data/Rakefile ADDED
@@ -0,0 +1,17 @@
1
+ require "rabbit/task/slide"
2
+
3
+ # Edit ./config.yaml to customize meta data
4
+
5
+ spec = nil
6
+ Rabbit::Task::Slide.new do |task|
7
+ spec = task.spec
8
+ # spec.files += Dir.glob("doc/**/*.*")
9
+ # spec.files -= Dir.glob("private/**/*.*")
10
+ # spec.add_runtime_dependency("YOUR THEME")
11
+ end
12
+
13
+ desc "Tag #{spec.version}"
14
+ task :tag do
15
+ sh("git", "tag", "-a", spec.version.to_s, "-m", "Publish #{spec.version}")
16
+ sh("git", "push", "--tags")
17
+ end
data/config.yaml ADDED
@@ -0,0 +1,26 @@
1
+ ---
2
+ id: postgresql-unconference-tokyo-2015
3
+ base_name: postgresql-japanese-full-text-search-like-pg-bigm-pgroonga
4
+ tags:
5
+ - rabbit
6
+ - full-text-search
7
+ - pgunconf
8
+ - pgroonga
9
+ - pg_bigm
10
+ - groonga
11
+ presentation_date: 2015-05-30
12
+ version: 2015.5.30.0
13
+ licenses:
14
+ - CC BY-SA 4.0
15
+ slideshare_id:
16
+ speaker_deck_id:
17
+ ustream_id:
18
+ vimeo_id:
19
+ youtube_id:
20
+ author:
21
+ markup_language: :rd
22
+ name: Kouhei Sutou
23
+ email: kou@clear-code.com
24
+ rubygems_user: kou
25
+ slideshare_user: kou
26
+ speaker_deck_user: kou
@@ -0,0 +1,305 @@
1
+ = PostgreSQLで\n日本語全文検索
2
+
3
+ : subtitle
4
+ LIKEとpg_bigmとPGroonga
5
+ : author
6
+ 須藤功平
7
+ : institution
8
+ 株式会社クリアコード
9
+ : content-source
10
+ PostgreSQLアンカンファレンス@東京
11
+ : date
12
+ 2015-05-30
13
+ : allotted-time
14
+ 20m
15
+ : theme
16
+ .
17
+
18
+ = 内容
19
+
20
+ (('tag:center'))
21
+ (('tag:large'))
22
+ PostgreSQLで使える\n
23
+ 日本語全文検索方法を\n
24
+ 順に紹介
25
+
26
+ ((' '))
27
+
28
+ = 1: LIKE
29
+
30
+ * メリット
31
+ * 標準で使える
32
+ * インデックス作成不要\n
33
+ (('note:(データ更新が遅くならない)'))
34
+ * データが少なければ十分速い
35
+ * デメリット
36
+ * データ量に比例して遅くなる
37
+
38
+ = 「少ない」データ?
39
+
40
+ どのくらいなら少ないのか\n
41
+ ↓\n
42
+ 計測結果と要件で判断
43
+
44
+ = 計測
45
+
46
+ pg_bigmでいろんなデータを\n
47
+ 日本語検索してみよう!\n
48
+ (('note:http://qiita.com/fujii_masao/items/87f1d94ff4d350a718aa'))
49
+
50
+ * 青空文庫の書籍一覧データ
51
+ * 住所データ
52
+ * 日本版Wikipediaの\n
53
+ タイトル一覧データ
54
+
55
+ = 青空文庫:作品名
56
+
57
+ * データ:
58
+ * 11,818件
59
+ * 1レコード平均17バイト
60
+ * 速度:
61
+ * 6.673ms
62
+
63
+ (('wait'))
64
+ (('tag:center'))
65
+ (('tag:x-large'))
66
+ 十分速い
67
+
68
+ = 住所データ:市区町村
69
+
70
+ * データ:
71
+ * 147,769件
72
+ * 1レコード平均14バイト
73
+ * 速度:
74
+ * 70.684ms
75
+
76
+ (('wait'))
77
+ (('tag:center'))
78
+ (('tag:x-large'))
79
+ 十分速い
80
+
81
+ = Wikipedia:タイトル
82
+
83
+ * データ:
84
+ * 2,461,588件
85
+ * 1レコード平均20バイト
86
+ * 速度:
87
+ * 943.450ms
88
+
89
+ (('wait'))
90
+ (('tag:center'))
91
+ (('tag:x-large'))
92
+ 十分速い?
93
+
94
+ = LIKEの計測結果
95
+
96
+ # RT
97
+ delimiter = [|]
98
+
99
+ 件数 | 平均サイズ | 速度
100
+
101
+ 11,818 | 17バイト | 6.673ms
102
+ 147,769 | 14バイト | 70.684ms
103
+ 2,461,588 | 20バイト | 943.450ms
104
+
105
+ (('tag:center'))
106
+ (('tag:margin-top'))
107
+ (('tag:large'))
108
+ 十分速いならLIKEでOK!
109
+
110
+ = LIKE以外の選択肢
111
+
112
+ * pg_bigm
113
+ * PGroonga
114
+
115
+ = 2: pg_bigm
116
+
117
+ * メリット
118
+ * データ量が多くても高速
119
+ * ストリーミングレプリケーション可
120
+ * デメリット
121
+ * 別途インストールしないといけない
122
+ * インデックス作成が遅い
123
+ * ヒット数に比例して遅くなる
124
+
125
+ = 遅い?
126
+
127
+ (('tag:center'))
128
+ (('tag:x-large'))
129
+ 計測して確認
130
+
131
+ (('tag:margin-top'))
132
+ (('tag:margin-top'))
133
+ (('note:備考:'))
134
+ * (('note:LIKEでは計測していないがLIKEよりは確実に速い'))
135
+ * (('note:LIKEはヒット数に依らずすべて同程度の検索時間になる'))
136
+
137
+ = 計測
138
+
139
+ PGroongaとpg_bigmの\n
140
+ ベンチマーク結果\n
141
+ (('note:https://github.com/groonga/wikipedia-search/issues/2'))
142
+
143
+ * データ
144
+ * 日本語版Wikipediaの本文
145
+ * 1,846,514件
146
+ * 1レコード平均
147
+
148
+ = インデックス作成
149
+
150
+ # RT
151
+ delimiter = [|]
152
+
153
+ 元データの\nロード時間 | インデックス\n作成時間
154
+
155
+ 16分31秒 | 5時間56分15秒
156
+
157
+ (('wait'))
158
+ (('tag:center'))
159
+ 遅い?そうでもない?
160
+
161
+ = ヒット数と検索時間
162
+
163
+ # RT
164
+ delimiter = [|]
165
+
166
+ ヒット数 | 検索時間
167
+
168
+ 361 | 0.107s
169
+ 17,168 | 1.224s
170
+ 22,885 | 2.472s
171
+ 625,792 | 15.195s
172
+
173
+ (('wait'))
174
+ (('tag:center'))
175
+ 遅い?そうでもない?
176
+
177
+ = pg_bigmの計測結果
178
+
179
+ インデックス作成時間: 約6時間
180
+
181
+ # RT
182
+ caption = 検索時間
183
+ delimiter = [|]
184
+
185
+ ヒット数 | 検索時間
186
+
187
+ 361 | 0.107s
188
+ 17,168 | 1.224s
189
+ 22,885 | 2.472s
190
+ 625,792 | 15.195s
191
+
192
+ (('tag:center'))
193
+ (('tag:margin-top'))
194
+ 遅くないならpg_bigmでOK!
195
+
196
+ = 残りの選択肢
197
+
198
+ * PGroonga
199
+
200
+ = 3: PGroonga
201
+
202
+ * メリット
203
+ * インデックス作成が速い
204
+ * データ量が多くても高速
205
+ * ヒット数に多くても高速
206
+ * デメリット
207
+ * 別途インストールしないといけない
208
+ * ストリーミングレプリケーション×
209
+
210
+ = インデックス作成
211
+
212
+ # RT
213
+ delimiter = [|]
214
+
215
+ 元データの\nロード時間 | インデックス\n作成時間
216
+
217
+ 16分31秒 | 25分37秒
218
+
219
+ = インデックス作成:比較
220
+
221
+ # RT
222
+ delimiter = [|]
223
+
224
+ PGroonga | pg_bigm
225
+
226
+ 25分37秒 | 5時間56分15秒
227
+
228
+ (('wait'))
229
+ (('tag:center'))
230
+ (('tag:margin-top'))
231
+ (('tag:x-large'))
232
+ 非常に高速
233
+
234
+ = ヒット数と検索時間
235
+
236
+ # RT
237
+ delimiter = [|]
238
+
239
+ ヒット数 | 検索時間
240
+
241
+ 368 | 0.030s
242
+ 17,172 | 0.121s
243
+ 22,885 | 0.179s
244
+ 625,792 | 0.646s
245
+
246
+ = 検索時間:比較
247
+
248
+ # RT
249
+ delimiter = [|]
250
+
251
+ ヒット数 | PGroonga | pg_bigm
252
+
253
+ 368 | 0.030s | 0.107s
254
+ 17,172 | 0.121s | 1.224s
255
+ 22,885 | 0.179s | 2.472s
256
+ 625,792 | 0.646s | 15.195s
257
+
258
+ (('wait'))
259
+ (('tag:center'))
260
+ (('tag:margin-top'))
261
+ (('tag:x-large'))
262
+ 非常に高速
263
+
264
+ = おねがい
265
+
266
+ (('tag:center'))
267
+ 同じベンチマークを実行して\n
268
+ 結果を貼ってください!\n
269
+ (('note:同じ傾向があるか確認したい'))
270
+
271
+ (('tag:margin-top'))
272
+ (('tag:margin-top'))
273
+ ベンチマークの実行方法↓\n
274
+ (('note:(ここでまとめたデータの生データも貼ってある)'))\n
275
+ (('note:https://github.com/groonga/wikipedia-search/issues/2'))
276
+
277
+ = まとめ1
278
+
279
+ * データが少ないならLIKEで十分
280
+ * 1レコード数十バイトなら\n
281
+ 百万件はいける
282
+ * データが多いならLIKEはツライ
283
+
284
+ = まとめ2
285
+
286
+ * データ多→pg_bigmかPGroonga
287
+ * ヒット件数が多い→PGroonga
288
+ * レコードサイズが大きい→PGroonga
289
+ * 更新が多い→PGroonga\n
290
+ (('note:(インデックス作成が速いから)'))
291
+ * ストリーミングレプリケーション要\n
292
+ →pg_bigm
293
+
294
+ = 参考情報
295
+
296
+ (('tag:center'))
297
+ PGroongaでも\n
298
+ レプリケーションできる!
299
+
300
+ (('tag:margin-top'))
301
+ pg_shardとPGroongaを使った\n
302
+ レプリケーション対応の\n
303
+ 高速日本語全文検索可能な\n
304
+ PostgreSQLクラスターの作り方\n
305
+ (('note:http://www.clear-code.com/blog/2015/5/18.html'))
data/theme.rb ADDED
@@ -0,0 +1,5 @@
1
+ @groonga_product = "pgroonga"
2
+
3
+ @title_slide_title_font_size = @xx_large_font_size * 0.8
4
+
5
+ include_theme("groonga")
metadata ADDED
@@ -0,0 +1,65 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: rabbit-slide-kou-postgresql-unconference-tokyo-2015
3
+ version: !ruby/object:Gem::Version
4
+ version: 2015.5.30.0
5
+ platform: ruby
6
+ authors:
7
+ - Kouhei Sutou
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2015-05-24 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: rabbit
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: 2.0.2
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: 2.0.2
27
+ description: PostgreSQLアンカンファレンス@東京(2015/5/30)でPostgreSQLの日本語全文検索まわりについて紹介した資料です。
28
+ email:
29
+ - kou@clear-code.com
30
+ executables: []
31
+ extensions: []
32
+ extra_rdoc_files: []
33
+ files:
34
+ - ".rabbit"
35
+ - README.rd
36
+ - Rakefile
37
+ - config.yaml
38
+ - pdf/postgresql-unconference-tokyo-2015-postgresql-japanese-full-text-search-like-pg-bigm-pgroonga.pdf
39
+ - postgresql-japanese-full-text-search-like-pg-bigm-pgroonga.rab
40
+ - theme.rb
41
+ homepage: http://slide.rabbit-shocker.org/authors/kou/postgresql-unconference-tokyo-2015/
42
+ licenses:
43
+ - CC BY-SA 4.0
44
+ metadata: {}
45
+ post_install_message:
46
+ rdoc_options: []
47
+ require_paths:
48
+ - lib
49
+ required_ruby_version: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - ">="
52
+ - !ruby/object:Gem::Version
53
+ version: '0'
54
+ required_rubygems_version: !ruby/object:Gem::Requirement
55
+ requirements:
56
+ - - ">="
57
+ - !ruby/object:Gem::Version
58
+ version: '0'
59
+ requirements: []
60
+ rubyforge_project:
61
+ rubygems_version: 2.2.2
62
+ signing_key:
63
+ specification_version: 4
64
+ summary: PostgreSQLで日本語全文検索 - LIKEとpg_bigmとPGroonga
65
+ test_files: []