[SKIP]全文検索で結果表示に不具合のチェックポイント

全文検索の結果が常に「閲覧制限のため、あなたが見られるページはありませんでした。」
になってしまう場合のチェックポイント。

以下SkipUserGroupでの回答を転載。(一部わかりやすく修正)

閲覧制限はlib/batch_make_cache.rbで作成するメタファイルに権限情報がかかれており、それを見ています。そのため、恐らくは
・キャッシュファイルは生成されているが、メタファイルが正しく生成されていない
・メタファイルが正しく生成されているが、正しく参照できていない
のいずれかではないかと推測されます。

具体的な設定箇所ですが、
initial_settings.ymlの

cache_path
serarch_appsのmeta
の2ヶ所が正しく設定されているかどうかを確認して下さい。

設定されている場合、設定されているディレクトリに正しくメタファイルが出力されているかどうか確認して下さい。

例として記事であれば、path/to/meta/entry/xxxx/xxxx.htmlといったファイルが正しく出力されており、かつ、search_appsのmetaがpath/to/metaとなっていることを確認してみて下さい。

,
とりあえず付けておく無駄ではなかったなまぁまぁ読めたちょっと役に立ったかなかなり良かったかも (まだ評価されていません)
Loading...

SKIP1.1全文検索設定手順

SKIP1.1.0で全文検索を有効にする手順です。[CentOS5.3]
(SKIP1.1.0でも同じ手順で動作したので正式版に修正しました)

SKIPとHyperEstraierのインストールは前述の通り済んでいる前提です。
できるだけSKIPのデフォルトの設定を利用します。
この設定を行う前にユーザと記事をいくつか登録しておくことをオススメします。

SKIPの本番稼働用のlighttpdを設定する

lighttpdのインストール

# yum install fcgi fcgi-devel lighttpd lighttpd-fastcgi pcre-devel
# gem install fcgi

lighttpd起動の前に走っているrailsプロセスがあれば終了する

# ps aux | grep production

root 13683 0.0 2.8 62012 57360 pts/0 S Apr24 0:06 ruby ./script/server -e production

# kill -9 13683

現在パスを確認して/var/skip_rootで運用するよう変更

# pwd
/home/user/download/skip-1.1.0
# cd ../
# mv /home/user/download/skip-1.1.0 /var/skip_root
# cd /var/skip_root

lighttpdを起動する(config/lighttpd.confをそのまま利用できます)
# ruby script/server lighttpd &

検索キャッシュの設定追加
initial_settings.ymlの設定をそのまま利用します
※ただし後からcron登録することを考えてフルパスに修正しておきます。

share_file_path: /var/skip_root/tmp/share_file_path
cache_path: /var/skip_root/tmp/app_cache

# mkdir tmp/app_cache
# mkdir tmp/app_cache_meta

# ruby lib/batch_make_cache.rb -all
※記事やファイルを予め作成しておきましょう

batch.logを確認
# less log/batch.log
app_cacheとapp_cache_meta以下にentryとuserが出来ていればOK
# ls tmp/app_cache
# ls tmp/app_cache_meta

添付ファイル検索におけるlighttpdの仕様上の問題を修正する

share_file_pathの生成を確認
# ls public/tmp/share_file_path
# rm -f tmp/app_cache/share_file
# cd tmp/app_cache
# ln -s ../../public/tmp/share_file_path share_file

HyperEstraierのノードインデックスを作成(/var/est/skipとします)

# mkdir /var/est
# mkdir /var/est/skip
# estmaster init /var/est/skip

ノードマスターをバックグラウンドで起動

# estmaster start -bg /var/est/skip
http://localhost:1978/  で起動していることを確認

インデックスを作成

# estcall raw -auth admin admin ‘http://localhost:1978/master?action=nodeadd&name=node1&label=NODE01’
OKと返ってくればOK

クローラの設定(/var/est/skip_crawlとします)

# mkdir /var/est/skip_crawl
# estwaver init /var/est/skip_crawl
# vi /var/est/skip_crawl/_conf

confファイルを以下のように編集します

キャッシュのURLを指定する
seed: 1.0|http://localhost:3000/cache/

許可するURLを指定する
allowrx: ^http://localhost:3000/cache/

拒否するURLから pdf,doc,xls,pptを取り除く
denyrx: ¥.(rtf|pdf|ps|eps|ai|doc|xls|ppt|sxw|sxc|sxi|xdw|jtd|oas|swf)$
↓ ↓
denyrx: ¥.(rtf|ps|eps|ai|sxw|sxc|sxi|xdw|jtd|oas|swf)$

インデックに登録しないURLを指定する(ディレクトリはインデックスに登録しない)
noidxrx: cache/.*/$

PDF, officeの変換ツールの設定を入れる
typerule: ^application/pdf${{!}}H@/usr/local/share/hyperestraier/filter/estfxpdftohtml
typerule: ^(application/msword|application/vnd.ms-(excel|powerpoint))${{!}}H@/usr/local/share/hyperestraier/filter/estfxmsotohtml

言語を日本語に設定する
language: 1

revisit: で再度URLを訪れるまでの期間を1日に設定する
revisit: 1d

nodeserv: で登録するノードサーバを設定する
nodeserv: 1|http://admin:admin@localhost:1978/node/node1

クロールの動作確認

# estwaver crawl -revcont /var/est/skip_crawl
finished successfullyと出ればOK

検索機能を有効にするためSKIPの設定を編集します

# vi config/initial_settings.yml

full_text_search_setting: true
meta: /var/skip_root/tmp/app_cache_meta

lighttpdの再起動

# kill `cat tmp/pids/lighttpd.pid`
# ruby script/server lighttpd &

これで検索窓が表示され、登録された記事などがあれば検索することができます。

記事や添付ファイル登録して確認する際には以下のコマンドを使用する
# estwaver crawl -restart /var/est/skip_crawl
もしくは
# vi /var/est/skip_crawl/_conf
revisit: で再度URLを訪れるまでの期間を1秒に設定する
revisit: 1s

,
とりあえず付けておく無駄ではなかったなまぁまぁ読めたちょっと役に立ったかなかなり良かったかも (まだ評価されていません)
Loading...

HyperEstraierインストール手順

CentOS5.3向け
SKIP全文検索のためのHyperEstraierのインストール

※以下のコンテンツの続き
http://user.openskip.org/user/wainohito/blog?entry_id=659

HyperEstraierの効率的なクロールパッチのためにこのページを読んでおく
http://jamz.jp/tech/2008/08/patch-to-hyper-estraier-before-install.html

以下からパッチpatch20080403.tgzをダウンロードしてdownloadフォルダに置いておく
http://sourceforge.net/mailarchive/message.php?msg_id=20080403.190234.98160137.Yasuharu.Yamada%40access-company.com
※wgetでうまく取得できなかったので。

CentOSではyumで導入できるものが限られるので手間がかかります。
yumでinstallできるものを先に入れて、後は個別に対応します。

# cd ~/download/
# yum install memcached xpdf wv

xlhtmlの準備

# wget http://www.asahi-net.or.jp/~yw3t-trns/namazu/xlhtml/xlhtml-0.5.1.tar.gz
# tar zxvf xlhtml-0.5.1.tar.gz
# cd xlhtml
# ./configure
# make
# make install

libiconvの準備

# cd ../
# wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.13.tar.gz
# tar zxvf libiconv-1.13.tar.gz
# cd libiconv-1.13
# ./configure
# make
# make install

パッチファイルの準備

# cd ../
# tar zxvf patch20080403.tgz

QDBMの準備

# wget http://qdbm.sourceforge.net/qdbm-1.8.77.tar.gz
# tar zxvf qdbm-1.8.77.tar.gz
# cd qdbm-1.8.77
# patch < ../qdbm1.8.77/qdbm1.8.77_00all.diff # ./configure --enable-zlib # make # make install HyperEstraier本体のインストール # cd ../ # wget http://hyperestraier.sourceforge.net/hyperestraier-1.4.13.tar.gz # tar zxvf hyperestraier-1.4.13.tar.gz # cd hyperestraier-1.4.13 # patch -p1 < ../he1.4.13/he1.4.13_00all.diff # ./configure # make # make install rubynativeのインストール # cd rubynative # ./configure # make # make install rubypureのインストール # cd ../rubypure/ # ./configure # make # make install これでインストールは完了

,
とりあえず付けておく無駄ではなかったなまぁまぁ読めたちょっと役に立ったかなかなり良かったかも (まだ評価されていません)
Loading...