Symfoware

Symfowareについての考察blog

Debianに全文検索ライブラリLUXをインストールする

以前、高速なkey-valueデータベースLux IOをインストールして使ってみました。
Debianに高速データベースマネージャ(DBM) Lux IOをインストールする

これは全文検索エンジンLux用に開発されたデータベースの模様。
http://luxse.sourceforge.net/

Luxをインストールして、全文検索を試してみようと思います。



インストール



ここを参考にしました。
http://luxse.sourceforge.net/install.html


■Lux IOのインストール

LuxIOのページはこちら。
http://luxio.sourceforge.net/


以下、インストール時の手順です。


# cd /usr/local/src/
# wget http://luxio.sourceforge.net/luxio-0.2.2.tar.gz
# tar zxf luxio-0.2.2.tar.gz
# cd luxio-0.2.2
# ./configure
# make
# make install





■MeCabのインストール

手を抜いて、apt-getでインストールしました。
参考にしたのは、こちら。
Debianにapt-getでMecab環境を作成し、Text::MeCabで操作する

/etc/apt/sources.listに以下の一行を追加。

deb http://cdn.debian.or.jp/debian lenny main contrib non-free



sources.listを更新し、mecabと辞書のインストールを実行します。


### listの再読み込み
# apt-get update

### mecabと辞書のインストール
# apt-get install mecab libmecab-dev mecab-ipadic-utf8





■Google Protocol Buffersのインストール

Google Protocol Buffersのページはこちら。
http://code.google.com/p/protobuf/


以下、インストールの手順です。


# cd /usr/local/src
# wget http://protobuf.googlecode.com/files/protobuf-2.3.0.tar.gz
# tar zxf protobuf-2.3.0.tar.gz
# cd protobuf-2.3.0
# ./configure
# make
# make install



※結構時間がかかります。

インストール後、ldconfigを実行して、protobufのモジュールをロードしておきます。
(じゃないと、Luxのmakeでこける。)



■boostのインストール

Luxのビルドにboostが必要なので、apt-getで入れておきます。


# apt-get install libboost-dev





■Lux本体のインストール

Luxのページはこちら。
http://luxse.sourceforge.net/


# cd /usr/local/src/
# wget http://luxse.sourceforge.net/lux-0.9.1.tar.gz
# tar zxf lux-0.9.1.tar.gz
# cd lux-0.9.1
# ./configure --enable-zlib
# make
# make install





私の環境では、make中にこんなエラーが発生しました。


../lux/util.h: In function 'char* Lux::uncompress(char*, uint32_t, uint32_t*)':
../lux/util.h:206: error: 'memset' was not declared in this scope



http://www.love2hina.net/xoops/modules/wordpress/index.php?p=465
こちらを参考に、lux/util.hを変更します。


# vi lux/util.h



先頭にある

#include <string>



これを

#include <string.h>



に変更すると、makeが通るようになってくれました。



サンプルプログラムの動作



同梱されているsampleを動かしてみます。


# cd /usr/local/src/lux-0.9.1/example
# make



これで、indexとsearchという2つのバイナリが生成されます。

まずはindex

# ./index blogs < posts
curr_id_: 0
1: 5 indexed.
2: 6 indexed.
(中略)
111: 156 indexed.
112: 157 indexed.
113: 160 indexed.



※最初、./index blogs.document.conf < postsとやってしまい、エラーが発生してはまりました。
.document.confの指定は不要です。


検索してみます。


# ./search blogs live
curr_id_: 113
total hits: 5
base: 0
num: 5
time: 0.00439286
[id] 144
[title] Pelican live @ O-Nest
[created_at] 20070928012840
[url] http://cheesy.dip.jp/diary/archives/144
score: 6666

[id] 146
[title] Mr Cooper live @ O-Nest
[created_at] 20071110131901
[url] http://cheesy.dip.jp/diary/archives/146
score: 6666

[id] 96
[title] These Arms Are Snakes live @ O-Nest
[created_at] 20070203110017
[url] http://cheesy.dip.jp/diary/archives/96
score: 6666

[id] 15
[title] Why? live
[created_at] 20060512001507
[url] http://cheesy.dip.jp/diary/?p=15
score: 6666

[id] 100
[title] Yo La Tengo live @ O-East
[created_at] 20070220000910
[url] http://cheesy.dip.jp/diary/archives/100
score: 6666




動いてくれた模様。
もうちょっと使い方を調べてみます。






関連記事

テーマ:データベース - ジャンル:コンピュータ

  1. 2010/02/28(日) 12:12:37|
  2. 備忘録
  3. | トラックバック:0
  4. | コメント:0
  5. | 編集
次のページ