This article was migrated from http://rails.office.drecom.jp/takiuchi/archive/178
HyperEstraier
は、全文検索エンジンです。Ruby on Railsから利用する場合は、acts_as_searchableを利用すると、非常に簡単にWebサービスに検索機能を追加することができます。
今回は、HyperEstraierのP2P連携機能を使ってクラスタリングを行う手順を紹介します。
まず、クラスタリングを行う全てのPCに、
通常の手順でHyperEstraierをインストール
します。パッケージマネージャを使う事もできますが、今回はソースからインストールする事にします。
インストールが済んだら、HyperEstraierを初期化して起動します。以下では、/usr/local/hyperestraier以下に環境を構築しています。
shell-unix-generic>>
estmaster init /usr/local/hyperestraier
estmaster start -bg /usr/local/hyperestraier
<<--
起動したら、ポート1978にアクセスし、動いていることを確認します。
続いてWebインターフェイスからノード間のリンクを作成します(もちろん、あらかじめノードを作成しておく必要があります。)
リンクの作成は、ノード編集画面から行います。
例)
http://search-1.com:1978/master_ui?action=10&name=nodename
ノード編集画面の一番下のlist of linksに以下のように、「{{!}}」で区切って別なサーバのノードを登録します。
http://search-2.com:1978/node/nodename{{!}}label{{!}}1000
上記は、search-2.com上のnodenameというノードに対して、labelというラベルでリンクを作成しています。1000というのは信頼度で、検索結果の順位に影響します。1台目から2台目へのlinkの設定が済んだら、2台目から1台目に逆方向にリンクを張ります。
以上でクラスタリングは完了です。
実際に検索を行うときは、メタ検索のdepthを1以上に指定する必要があります。
This article was migrated from http://rails.office.drecom.jp/takiuchi/archive/178