スタッフブログ

ローハイドのスタッフが、日常のこと、ネットで見つけた便利な情報、仕事に役立つとっておきのテクニックを紹介します。

Fight! the Rawhide

2007年4 月20日13:51

[Rails]HyperEstraierのInstall

STAFF BLOG

おーた

RubyOnRailsでHyperEstraierをインストールする方法です。

1.qdbmをダウンロードしてインストールします。

$ su - ※スーパーユーザーで
$ wget http://qdbm.sourceforge.net/qdbm-1.8.75.tar.gz
$ tar -xvzf qdbm-1.8.75.tar.gz
$ cd qdbm-1.8.75.tar.gz
$ ./configure –enable-zlib
$ make
$ make install

2.HyperEstraierをダウンロードしてインストールします

$ su -
$ wget http://hyperestraier.sourceforge.net/hyperestraier-1.4.10.tar.gz
$ tar -xvzf hyperestraier-1.4.10.tar.gz
$ cd hyperstraier
$ ./configure
$ make
$ make install

3.estmasterサーバを起動します

$ estmaster init /usr/local/share/hyperestraier
$ estmaster start /usr/local/share/hyperestraier &
→サーバをとめるときはestmaster stop /var/lib/hyperestraier
→ユーザの設定をミスったりしてログインできなくなったら、stopしたあとにもう一回initしてstart

4.管理画面でユーザの設定とノードの設定を行います。

1.http://[hyperestraierをインストールしたサーバ]:1978/を開きます
2.administrationをクリックするとid/passを求められるので、defaultのadmin/adminを入力します。
3.Manage Usersでadminのpassをかえます。(Editを押す)※セキュリティ対策
4.defaultのadminではなく他にユーザを作っておくほうが良さそうなので、もう一個ユーザを作ります。
→権限はadminと同様でok。ここではidとpassをhoge/piyoとします。
5.Manage Nodesにて適当なノードを作ります。ここではノード名をnodes_hogeとします。
  →左のテキストボックスがnode名、右のテキストボックスが説明文。
後述のdatabase.ymlの設定で使用します。

以上でHyperEstrairerサーバサイドの設定は終了です。
こんどはRail側の設定を行いましょう。
※全文検索プラグイン、acts_as_searchableの使い方についてはぐぐると色々出てくるので、割愛します。

5.gemでacts_as_searchableをインストールします。

$gem install acts_as_searchable

6.RAILS_ROOT/config/database.ymlに以下の項目を追加します。

estraier:
  port: 1978
  user: hoge
  password piyo
  node: nodes_hoge

7.enviroment.rbにrequire_gemを書いておきます。

require_gem ‘acts_as_searchable’

8.全文検索用のモデルからHyperEstraierのインデックスを作ります。

アプリケーションルートで./script/console
>> Hoge.reindex!

※Hogeモデルがacts_as_searchableを使う全文検索対象モデルであった場合の書き方です。

凡例)def Hoge < ActiveRecod::Base
acts_as_searchable :searchable_fields => [:piyo]
end

以上で、Rails上からHogeモデルを使用しての全文検索が可能となります。
動かない場合は、全文検索用のテーブルがInnoDBになっていないかを確認したり、
Railsアプリケーションを再起動してみたりすると大体動きます。

それでは、よいHyperEstraierライフを。
(ちなみにacts_as_searchable、ぶっちゃけ使いにくいです。重いです。
sennaにすればよかった、と後悔している今日この頃です。)

o.t.a

スペシャルサンクス: ライドオンレイルズ

コメントをどうぞ