sg

PDF全文検索サーバが実現できるかどうかテスト

はじめに

手持ちの書籍を随分とPDF化したが、全く読む機会がない。実物として手元にあるのであれば、パラパラとめくることができる。PCの中に入っているとPDFファイルを開くのが面倒で放置されてしまう。これはどうにかしなければ行けないと考え、全文検索サーバを導入することとした。

どのアプリケーションを使うか

ネット上では、あまり情報量が多くない。不人気なのかな。Namazu、Fessやら使われているのをみかける。偶然、Groongaを見つけた。どのアプリーケーションを使うにしろ、インストールしやすいのがよい。ひとまずGroongaを使う方針で準備をすすめる。

インストール

~$ sudo apt install software-properties-common
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています                
状態情報を読み取っています... 完了
software-properties-common はすでに最新バージョン (0.96.24.32.5) です。
アップグレード: 0 個、新規インストール: 0 個、削除: 0 個、保留: 23 個。

universeリポジトリを有効にする作業らしい

~$ sudo add-apt-repository -y universe
'universe'のコンポーネントはすべてのソースで有効になっています。

有効になってんじゃん。

非公式のリポジトリを追加する儀式

~$ sudo add-apt-repository -y ppa:groonga/ppa
ヒット:1 http://jp.archive.ubuntu.com/ubuntu bionic InRelease
取得:2 http://jp.archive.ubuntu.com/ubuntu bionic-updates InRelease [88.7 kB]  
ヒット:3 http://storage.googleapis.com/bazel-apt stable InRelease              
取得:4 http://jp.archive.ubuntu.com/ubuntu bionic-backports InRelease [74.6 kB]
無視:5 http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64  InRelease
ヒット:6 http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64  Release
取得:8 http://security.ubuntu.com/ubuntu bionic-security InRelease [83.2 kB]   
ヒット:9 http://ppa.launchpad.net/graphics-drivers/ppa/ubuntu bionic InRelease
取得:10 http://ppa.launchpad.net/groonga/ppa/ubuntu bionic InRelease [21.3 kB] 
取得:11 http://ppa.launchpad.net/groonga/ppa/ubuntu bionic/main i386 Packages [4,060 B]
取得:12 http://ppa.launchpad.net/groonga/ppa/ubuntu bionic/main amd64 Packages [4,048 B]
取得:13 http://ppa.launchpad.net/groonga/ppa/ubuntu bionic/main Translation-en [2,008 B]
278 kB を 3秒 で取得しました (104 kB/s)                        
パッケージリストを読み込んでいます... 完了

パッケージリストを最新化

~$ sudo apt update
ヒット:1 http://storage.googleapis.com/bazel-apt stable InRelease
ヒット:2 http://jp.archive.ubuntu.com/ubuntu bionic InRelease                  
取得:3 http://jp.archive.ubuntu.com/ubuntu bionic-updates InRelease [88.7 kB]  
取得:4 http://jp.archive.ubuntu.com/ubuntu bionic-backports InRelease [74.6 kB]
無視:5 http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64  InRelease
ヒット:6 http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64  Release
ヒット:8 http://ppa.launchpad.net/graphics-drivers/ppa/ubuntu bionic InRelease 
取得:9 http://security.ubuntu.com/ubuntu bionic-security InRelease [83.2 kB]   
ヒット:10 http://ppa.launchpad.net/groonga/ppa/ubuntu bionic InRelease         
247 kB を 2秒 で取得しました (131 kB/s)                                        
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています       
状態情報を読み取っています... 完了
アップグレードできるパッケージが 23 個あります。表示するには 'apt list --upgradable' を実行してください。

そしてついにインストールする。

~$ sudo apt install groonga
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています                
状態情報を読み取っています... 完了
以下の追加パッケージがインストールされます:
  groonga-bin groonga-doc groonga-plugin-suggest libgroonga0 libjs-underscore
  libmsgpackc2 libnorm1 libpgm-5.2-0 libzmq5
以下のパッケージが新たにインストールされます:
  groonga groonga-bin groonga-doc groonga-plugin-suggest libgroonga0
  libjs-underscore libmsgpackc2 libnorm1 libpgm-5.2-0 libzmq5
アップグレード: 0 個、新規インストール: 10 個、削除: 0 個、保留: 23 個。
3,617 kB のアーカイブを取得する必要があります。
この操作後に追加で 26.0 MB のディスク容量が消費されます。
続行しますか? [Y/n] y
取得:1 http://jp.archive.ubuntu.com/ubuntu bionic/universe amd64 libmsgpackc2 amd64 2.1.5-1 [14.3 kB]
取得:2 http://jp.archive.ubuntu.com/ubuntu bionic/universe amd64 libnorm1 amd64 1.5r6+dfsg1-6 [224 kB]
取得:3 http://jp.archive.ubuntu.com/ubuntu bionic/universe amd64 libpgm-5.2-0 amd64 5.2.122~dfsg-2 [157 kB]
取得:4 http://jp.archive.ubuntu.com/ubuntu bionic/universe amd64 libzmq5 amd64 4.2.5-1 [220 kB]
取得:5 http://jp.archive.ubuntu.com/ubuntu bionic/main amd64 libjs-underscore all 1.8.3~dfsg-1 [59.9 kB]
取得:6 http://ppa.launchpad.net/groonga/ppa/ubuntu bionic/main amd64 libgroonga0 amd64 8.0.8-2~bionic1 [1,637 kB]
取得:7 http://ppa.launchpad.net/groonga/ppa/ubuntu bionic/main amd64 groonga-bin amd64 8.0.8-2~bionic1 [256 kB]
取得:8 http://ppa.launchpad.net/groonga/ppa/ubuntu bionic/main amd64 groonga-plugin-suggest amd64 8.0.8-2~bionic1 [77.4 kB]
取得:9 http://ppa.launchpad.net/groonga/ppa/ubuntu bionic/main amd64 groonga-doc all 8.0.8-2~bionic1 [964 kB]
取得:10 http://ppa.launchpad.net/groonga/ppa/ubuntu bionic/main amd64 groonga amd64 8.0.8-2~bionic1 [7,896 B]
3,617 kB を 7秒 で取得しました (523 kB/s)                                      
以前に未選択のパッケージ libmsgpackc2:amd64 を選択しています。
(データベースを読み込んでいます ... 現在 188364 個のファイルとディレクトリがインストールされています。)
.../0-libmsgpackc2_2.1.5-1_amd64.deb を展開する準備をしています ...
libmsgpackc2:amd64 (2.1.5-1) を展開しています...
以前に未選択のパッケージ libgroonga0:amd64 を選択しています。
.../1-libgroonga0_8.0.8-2~bionic1_amd64.deb を展開する準備をしています ...
libgroonga0:amd64 (8.0.8-2~bionic1) を展開しています...
以前に未選択のパッケージ groonga-bin を選択しています。
.../2-groonga-bin_8.0.8-2~bionic1_amd64.deb を展開する準備をしています ...
groonga-bin (8.0.8-2~bionic1) を展開しています...
以前に未選択のパッケージ libnorm1:amd64 を選択しています。
.../3-libnorm1_1.5r6+dfsg1-6_amd64.deb を展開する準備をしています ...
libnorm1:amd64 (1.5r6+dfsg1-6) を展開しています...
以前に未選択のパッケージ libpgm-5.2-0:amd64 を選択しています。
.../4-libpgm-5.2-0_5.2.122~dfsg-2_amd64.deb を展開する準備をしています ...
libpgm-5.2-0:amd64 (5.2.122~dfsg-2) を展開しています...
以前に未選択のパッケージ libzmq5:amd64 を選択しています。
.../5-libzmq5_4.2.5-1_amd64.deb を展開する準備をしています ...
libzmq5:amd64 (4.2.5-1) を展開しています...
以前に未選択のパッケージ groonga-plugin-suggest を選択しています。
.../6-groonga-plugin-suggest_8.0.8-2~bionic1_amd64.deb を展開する準備をしています ...
groonga-plugin-suggest (8.0.8-2~bionic1) を展開しています...
以前に未選択のパッケージ libjs-underscore を選択しています。
.../7-libjs-underscore_1.8.3~dfsg-1_all.deb を展開する準備をしています ...
libjs-underscore (1.8.3~dfsg-1) を展開しています...
以前に未選択のパッケージ groonga-doc を選択しています。
.../8-groonga-doc_8.0.8-2~bionic1_all.deb を展開する準備をしています ...
groonga-doc (8.0.8-2~bionic1) を展開しています...
以前に未選択のパッケージ groonga を選択しています。
.../9-groonga_8.0.8-2~bionic1_amd64.deb を展開する準備をしています ...
groonga (8.0.8-2~bionic1) を展開しています...
libpgm-5.2-0:amd64 (5.2.122~dfsg-2) を設定しています ...
libjs-underscore (1.8.3~dfsg-1) を設定しています ...
libnorm1:amd64 (1.5r6+dfsg1-6) を設定しています ...
libc-bin (2.27-3ubuntu1) のトリガを処理しています ...
groonga-doc (8.0.8-2~bionic1) を設定しています ...
libmsgpackc2:amd64 (2.1.5-1) を設定しています ...
libgroonga0:amd64 (8.0.8-2~bionic1) を設定しています ...
libzmq5:amd64 (4.2.5-1) を設定しています ...
groonga-bin (8.0.8-2~bionic1) を設定しています ...
groonga-plugin-suggest (8.0.8-2~bionic1) を設定しています ...
groonga (8.0.8-2~bionic1) を設定しています ...
libc-bin (2.27-3ubuntu1) のトリガを処理しています ...
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています                
状態情報を読み取っています... 完了
以下の追加パッケージがインストールされます:
  groonga-bin groonga-doc groonga-plugin-suggest libgroonga0 libjs-underscore
  libmsgpackc2 libnorm1 libpgm-5.2-0 libzmq5
以下のパッケージが新たにインストールされます:
  groonga groonga-bin groonga-doc groonga-plugin-suggest libgroonga0
  libjs-underscore libmsgpackc2 libnorm1 libpgm-5.2-0 libzmq5
アップグレード: 0 個、新規インストール: 10 個、削除: 0 個、保留: 23 個。
3,617 kB のアーカイブを取得する必要があります。
この操作後に追加で 26.0 MB のディスク容量が消費されます。
続行しますか? [Y/n] y
取得:1 http://jp.archive.ubuntu.com/ubuntu bionic/universe amd64 libmsgpackc2 amd64 2.1.5-1 [14.3 kB]
取得:2 http://jp.archive.ubuntu.com/ubuntu bionic/universe amd64 libnorm1 amd64 1.5r6+dfsg1-6 [224 kB]
取得:3 http://jp.archive.ubuntu.com/ubuntu bionic/universe amd64 libpgm-5.2-0 amd64 5.2.122~dfsg-2 [157 kB]
取得:4 http://jp.archive.ubuntu.com/ubuntu bionic/universe amd64 libzmq5 amd64 4.2.5-1 [220 kB]
取得:5 http://jp.archive.ubuntu.com/ubuntu bionic/main amd64 libjs-underscore all 1.8.3~dfsg-1 [59.9 kB]
取得:6 http://ppa.launchpad.net/groonga/ppa/ubuntu bionic/main amd64 libgroonga0 amd64 8.0.8-2~bionic1 [1,637 kB]
取得:7 http://ppa.launchpad.net/groonga/ppa/ubuntu bionic/main amd64 groonga-bin amd64 8.0.8-2~bionic1 [256 kB]
取得:8 http://ppa.launchpad.net/groonga/ppa/ubuntu bionic/main amd64 groonga-plugin-suggest amd64 8.0.8-2~bionic1 [77.4 kB]
取得:9 http://ppa.launchpad.net/groonga/ppa/ubuntu bionic/main amd64 groonga-doc all 8.0.8-2~bionic1 [964 kB]
取得:10 http://ppa.launchpad.net/groonga/ppa/ubuntu bionic/main amd64 groonga amd64 8.0.8-2~bionic1 [7,896 B]
3,617 kB を 7秒 で取得しました (523 kB/s)                                      
以前に未選択のパッケージ libmsgpackc2:amd64 を選択しています。
(データベースを読み込んでいます ... 現在 188364 個のファイルとディレクトリがインストールされています。)
.../0-libmsgpackc2_2.1.5-1_amd64.deb を展開する準備をしています ...
libmsgpackc2:amd64 (2.1.5-1) を展開しています...
以前に未選択のパッケージ libgroonga0:amd64 を選択しています。
.../1-libgroonga0_8.0.8-2~bionic1_amd64.deb を展開する準備をしています ...
libgroonga0:amd64 (8.0.8-2~bionic1) を展開しています...
以前に未選択のパッケージ groonga-bin を選択しています。
.../2-groonga-bin_8.0.8-2~bionic1_amd64.deb を展開する準備をしています ...
groonga-bin (8.0.8-2~bionic1) を展開しています...
以前に未選択のパッケージ libnorm1:amd64 を選択しています。
.../3-libnorm1_1.5r6+dfsg1-6_amd64.deb を展開する準備をしています ...
libnorm1:amd64 (1.5r6+dfsg1-6) を展開しています...
以前に未選択のパッケージ libpgm-5.2-0:amd64 を選択しています。
.../4-libpgm-5.2-0_5.2.122~dfsg-2_amd64.deb を展開する準備をしています ...
libpgm-5.2-0:amd64 (5.2.122~dfsg-2) を展開しています...
以前に未選択のパッケージ libzmq5:amd64 を選択しています。
.../5-libzmq5_4.2.5-1_amd64.deb を展開する準備をしています ...
libzmq5:amd64 (4.2.5-1) を展開しています...
以前に未選択のパッケージ groonga-plugin-suggest を選択しています。
.../6-groonga-plugin-suggest_8.0.8-2~bionic1_amd64.deb を展開する準備をしています ...
groonga-plugin-suggest (8.0.8-2~bionic1) を展開しています...
以前に未選択のパッケージ libjs-underscore を選択しています。
.../7-libjs-underscore_1.8.3~dfsg-1_all.deb を展開する準備をしています ...
libjs-underscore (1.8.3~dfsg-1) を展開しています...
以前に未選択のパッケージ groonga-doc を選択しています。
.../8-groonga-doc_8.0.8-2~bionic1_all.deb を展開する準備をしています ...
groonga-doc (8.0.8-2~bionic1) を展開しています...
以前に未選択のパッケージ groonga を選択しています。
.../9-groonga_8.0.8-2~bionic1_amd64.deb を展開する準備をしています ...
groonga (8.0.8-2~bionic1) を展開しています...
libpgm-5.2-0:amd64 (5.2.122~dfsg-2) を設定しています ...
libjs-underscore (1.8.3~dfsg-1) を設定しています ...
libnorm1:amd64 (1.5r6+dfsg1-6) を設定しています ...
libc-bin (2.27-3ubuntu1) のトリガを処理しています ...
groonga-doc (8.0.8-2~bionic1) を設定しています ...
libmsgpackc2:amd64 (2.1.5-1) を設定しています ...
libgroonga0:amd64 (8.0.8-2~bionic1) を設定しています ...
libzmq5:amd64 (4.2.5-1) を設定しています ...
groonga-bin (8.0.8-2~bionic1) を設定しています ...
groonga-plugin-suggest (8.0.8-2~bionic1) を設定しています ...
groonga (8.0.8-2~bionic1) を設定しています ...
libc-bin (2.27-3ubuntu1) のトリガを処理しています ...

また、やれることしては、

  • サーバー用途のためのHTTPサーバパッケージをインストール
  • トークナイザーとしてMeCabをインストール
  • トークンフィルターとしてTokenFilterStemをインストール
  • MySQL五感のノーマライザーをGroongaのプラグインとして提供するパッケージをインストール

各々がどういう意味があるのか全く理解しておらず、後回しにする。
と思ったが、以下によると
http://groonga.org/ja/docs/characteristic.html#inverted-index-and-tokenizer
MeCabスゲエと書いてあるので、MeCabパッケージはインストールしておこう。

~$ sudo apt install groonga-tokenizer-mecab
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています                
状態情報を読み取っています... 完了
以下の追加パッケージがインストールされます:
  libmecab2 mecab-naist-jdic mecab-naist-jdic-eucjp mecab-utils
以下のパッケージが新たにインストールされます:
  groonga-tokenizer-mecab libmecab2 mecab-naist-jdic mecab-naist-jdic-eucjp
  mecab-utils
アップグレード: 0 個、新規インストール: 5 個、削除: 0 個、保留: 23 個。
18.3 MB のアーカイブを取得する必要があります。
この操作後に追加で 154 MB のディスク容量が消費されます。
続行しますか? [Y/n] y
取得:1 http://jp.archive.ubuntu.com/ubuntu bionic/universe amd64 libmecab2 amd64 0.996-5 [257 kB]
取得:2 http://jp.archive.ubuntu.com/ubuntu bionic/universe amd64 mecab-utils amd64 0.996-5 [4,856 B]
取得:3 http://jp.archive.ubuntu.com/ubuntu bionic/universe amd64 mecab-naist-jdic-eucjp all 0.6.3.b-20111013-8 [18.0 MB]
取得:4 http://ppa.launchpad.net/groonga/ppa/ubuntu bionic/main amd64 groonga-tokenizer-mecab amd64 8.0.8-2~bionic1 [35.1 kB]
取得:5 http://jp.archive.ubuntu.com/ubuntu bionic/universe amd64 mecab-naist-jdic all 0.6.3.b-20111013-8 [3,164 B]
18.3 MB を 4秒 で取得しました (4,681 kB/s)   
以前に未選択のパッケージ libmecab2:amd64 を選択しています。
(データベースを読み込んでいます ... 現在 189202 個のファイルとディレクトリがインストールされています。)
.../libmecab2_0.996-5_amd64.deb を展開する準備をしています ...
libmecab2:amd64 (0.996-5) を展開しています...
以前に未選択のパッケージ mecab-utils を選択しています。
.../mecab-utils_0.996-5_amd64.deb を展開する準備をしています ...
mecab-utils (0.996-5) を展開しています...
以前に未選択のパッケージ mecab-naist-jdic-eucjp を選択しています。
.../mecab-naist-jdic-eucjp_0.6.3.b-20111013-8_all.deb を展開する準備をしています ...
mecab-naist-jdic-eucjp (0.6.3.b-20111013-8) を展開しています...
以前に未選択のパッケージ mecab-naist-jdic を選択しています。
.../mecab-naist-jdic_0.6.3.b-20111013-8_all.deb を展開する準備をしています ...
mecab-naist-jdic (0.6.3.b-20111013-8) を展開しています...
以前に未選択のパッケージ groonga-tokenizer-mecab を選択しています。
.../groonga-tokenizer-mecab_8.0.8-2~bionic1_amd64.deb を展開する準備をしています ...
groonga-tokenizer-mecab (8.0.8-2~bionic1) を展開しています...
libmecab2:amd64 (0.996-5) を設定しています ...
libc-bin (2.27-3ubuntu1) のトリガを処理しています ...
mecab-utils (0.996-5) を設定しています ...
mecab-naist-jdic-eucjp (0.6.3.b-20111013-8) を設定しています ...
Now generating naist-jdic data for Mecab. This may take a while...
reading /usr/share/mecab/dic/naist-jdic-eucjp/unk.def ... 40
emitting double-array: 100% |###########################################| 
/usr/share/mecab/dic/naist-jdic-eucjp/model.def is not found. skipped.
reading /usr/share/mecab/dic/naist-jdic-eucjp/naist-jdic.csv ... 485863
emitting double-array: 100% |###########################################| 
reading /usr/share/mecab/dic/naist-jdic-eucjp/matrix.def ... 1396x1396
emitting matrix      : 100% |###########################################| 

done!
Check /var/lib/mecab/dic/naist-jdic-eucjp directory.
update-alternatives: /var/lib/mecab/dic/debian (mecab-dictionary) を提供するために自動モードで /var/lib/mecab/dic/naist-jdic-eucjp を使います
mecab-naist-jdic (0.6.3.b-20111013-8) を設定しています ...
Now generating naist-jdic data for Mecab. This may take a while...
reading /usr/share/mecab/dic/naist-jdic-eucjp/unk.def ... 40
emitting double-array: 100% |###########################################| 
/usr/share/mecab/dic/naist-jdic-eucjp/model.def is not found. skipped.
reading /usr/share/mecab/dic/naist-jdic-eucjp/naist-jdic.csv ... 485863
emitting double-array: 100% |###########################################| 
reading /usr/share/mecab/dic/naist-jdic-eucjp/matrix.def ... 1396x1396
emitting matrix      : 100% |###########################################| 

done!
Check /var/lib/mecab/dic/naist-jdic directory.
update-alternatives: /var/lib/mecab/dic/debian (mecab-dictionary) を提供するために自動モードで /var/lib/mecab/dic/naist-jdic を使います
groonga-tokenizer-mecab (8.0.8-2~bionic1) を設定しています ...

ほんで、、、どうするんだ、、、メンドクサイ

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です