FreeBSD/Namazu の変更点
*Namazu [#pea751c3]
ソース:~
http://www.namazu.org/index.html.ja
#contents
**インストール [#p6791dcf]
$ cd /usr/ports/japanese/namazu2
$ make install clean
***インストール(ソース) [#r4ef36d4]
$ tar zxvf namazu-2.0.19.tar.gz
$ cd namazu-2.0.19
$ ./configure
$ make
# make install
**「mknmz」の設定 [#r8987b3e]
# cp -p /usr/local/etc/namazu/mknmzrc-sample /usr/local/etc/namazu/mknmzrc
# chmod 644 /usr/local/etc/namazu/mknmzrc
# vi /usr/local/etc/namazu/mknmzrc
# $NKF = "module_nkf";
# $MECAB = "module_mecab";
# $WAKATI = $MECAB;
↓「mknmzrc」の編集(編集後)
$NKF = "module_nkf";
$MECAB = "module_mecab";
$WAKATI = $MECAB;
**「namazu」の設定 [#sb566085]
# cp -p /usr/local/etc/namazu/namazurc-sample /usr/local/etc/namazu/namazurc
# chmod 644 /usr/local/etc/namazu/namazurc
# vi /usr/local/etc/namazu/namazurc
Index /usr/local/var/namazu/index/root_http/
Template /usr/local/var/namazu/index/root_http/
Lang ja
**「mknmz」によるインデックスの作成 [#f6c37ea9]
$ export LANG=ja_JP.eucJP
$ export LC_ALL=ja_JP.eucJP
$ mknmz -O /usr/local/var/namazu/index/test /home/www/http/
**「namazu」による全文検索 [#wcef70a3]
$ namazu test
*Webページからの全文検索 [#m165742a]
**CGIファイルのコピー [#u1458d9e]
$ cp -p /usr/local/libexec/namazu.cgi /home/www/root_http/
**「.namazurc」の作成 [#mc70ed02]
$ cp -p /usr/local/etc/namazu/namazurc /home/www/root_http/.namazurc
**「.namazurc」への追記 [#ze67a72b]
Replace /home/www/root_http http://www.kishiro.com
**フィルタのインストール [#u577ba04]
ExcelとPowerPoint?形式ファイルをHTMLに変換ツール
# cd /usr/ports/textproc/xlhtml
# make ; make install ; make clean
pdftohtmlのインストール ~
PDF形式ファイルをHTMLに変換ツール
# cd /usr/ports/textproc/pdftohtml
# make -D WITHOUT_X11 install ; make clean
wvWareのインストール ~
Word形式ファイルをHTMLに変換ツール
# cd /usr/ports/textproc/wv
# make -D WITHOUT_X11 install ; make clean
いろいろ
# cd /usr/ports/archivers/unzip
# make install ; make clean
ps2textインストール~
http://softpark.jplaza.com/software/freesoft.html
# tar zxvf ps2text-0.4.1.tar.z
# cd ps2text-0.4.1
# vi Makefile
---------------------------------------
GS = /usr/local/gnu/bin/gs
SED = /bin/sed
↓
GS = /usr/local/bin/gs
SED = /usr/bin/sed
---------------------------------------
# make
# make install
# chmod 755 /usr/local/bin/ps2text
# ln -s /usr/local/bin/ps2text /usr/local/bin/ps2ascii
***フィルタの一覧 [#aa82067c]
http://www.namazu.org/doc/manual.html#doc-filter
*複数のインデックスを作成する場合、更新日・ファイル数・キーワード数の取得スクリプト [#ob5ed9b4]
構成はこんな感じ
----indexs(テンプレート)
|
|--AAA(インデックス1)
|
|--BBB(インデックス2)
|
|--CCC(インデックス3)
**スクリプト [#rb974536]
<?php
$index_main="/home/matsui/public_html/indexs/NMZ.head.ja";
$index_master="/home/matsui/public_html/indexs/NMZ.master";
$index[1]="/home/matsui/public_html/indexs/AAA/NMZ.head.ja";
$index[2]="/home/matsui/public_html/indexs/BBB/NMZ.head.ja";
$index[3]="/home/matsui/public_html/indexs/CCC/NMZ.head.ja";
$file_all =0;
$key_all=0;
$tmp=0;
foreach($index as $k => $v){
exec("grep '<!-- DATE -->' ".$v." |awk '{print $5}'",$arr[date]);
exec("grep '<!-- FILE -->' ".$v." |awk '{print $4}'",$arr[file]);
exec("grep '<!-- KEY -->' ".$v." |awk '{print $4}'",$arr[key]);
$index_date[date][$k] = $arr[date][0];
$index_date[file][$k] = $arr[file][0];
$index_date[key][$k] = $arr[key][0];
unset($arr);
}
for($i=1;$i<=count($index);$i++){
$file_all += ereg_replace('\,','',$index_date[file][$i]);
$key_all += ereg_replace('\,','',$index_date[key][$i]);
if($index_date[date][$i] > $tmp)$date_last = $index_date[date][$i];
}
//echo $file_all."\n";
//echo $key_all;
$file=file($index_master);
$fp = fopen($index_main, "w+");
foreach($file as $val){
if(ereg('<!-- DATE -->',$val)){
foreach($index as $k => $v)
$val = ereg_replace('index_'.$k,$index_date[date][$k],$val);
}
if(ereg('<!-- FILE -->',$val)){
foreach($index as $k => $v)
$val = ereg_replace('index_'.$k,$index_date[file][$k],$val);
}
if(ereg('<!-- KEY -->',$val)){
foreach($index as $k => $v)
$val = ereg_replace('index_'.$k,$index_date[key][$k],$val);
}
if(ereg('<!-- FILE --> index_file_all <!-- FILE -->',$val))
$val = ereg_replace('index_file_all',trim($file_all),$val);
if(ereg('<!-- KEY --> index_key_all <!-- KEY -->',$val))
$val = ereg_replace('index_key_all',trim($key_all),$val);
if(ereg('<!-- DATE --> index_date_last <!-- DATE -->',$val))
$val = ereg_replace('index_date_last',trim($date_last),$val);
fwrite($fp,$val);
}
fclose($fp);
?>
**NMZ.master [#adb16bb9]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<!-- LINK-REV-MADE -->
<link rev="made" href="mailto:foobar@namazu.org">
<!-- LINK-REV-MADE -->
<title>Namazu: a Full-Text Search Engine</title>
<style type="text/css"><!--
strong.keyword { color: Red; }
p.example { text-indent: 1em;
color: Navy;
font-weight: bold;
font-family: monospace; }
code { color: Navy;
font-family: monospace; }
code.example { color: Navy;
font-weight: bold;
font-family: monospace; }
code.operator { color: Navy;
font-family: monospace;
font-weight: bold; }
--></style>
</head>
<body lang="ja">
<h1>Namazu による全文検索システム</h1>
<p>
現在、<!-- FILE --> index_file_all <!-- FILE --> の文書がインデックス化され、
<!-- KEY --> index_key_all <!-- KEY --> 個のキーワードが登録されています。
</p>
<p>
</p>
<hr>
<form method="get" action="{cgi}">
<p>
<strong>検索式:</strong>
<input type="text" name="query" size="40">
<input type="submit" name="submit" value="Search!">
<input type="hidden" name="whence" value="0">
<!-- <input type="hidden" name="idxname" value="foobar"> -->
<a href="{cgi}">[検索方法]</a>
</p>
<p>
<strong>表示件数:</strong>
<select name="max">
<option value="10">10</option>
<option selected value="20">20</option>
<option value="30">30</option>
<option value="50">50</option>
<option value="100">100</option>
</select>
<strong>表示形式:</strong>
<select name="result">
<option selected value="normal">標準</option>
<option value="short">簡潔</option>
</select>
<strong>ソート:</strong>
<select name="sort">
<option selected value="score">スコア</option>
<option value="date:late">日付 (新しい順)</option>
<option value="date:early">日付 (古い順)</option>
<option value="field:subject:ascending">題名 (昇順)</option>
<option value="field:subject:descending">題名 (降順)</option>
<option value="field:from:ascending">著者 (昇順)</option>
<option value="field:from:descending">著者 (降順)</option>
<option value="field:size:ascending">サイズ (昇順)</option>
<option value="field:size:descending">サイズ (降順)</option>
<option value="field:uri:ascending">URI (昇順)</option>
<option value="field:uri:descending">URI (降順)</option>
</select>
</p>
<p>
<strong>検索対象:</strong>
<ul>
<li><input type="checkbox" name="idxname" value="AAA" checked>AAA
ファイル:<!-- FILE --> index_1 <!-- FILE -->個
キーワード:<!-- KEY --> index_1 <!-- KEY -->個
インデックスの最終更新日: <!-- DATE --> index_1 <!-- DATE -->
</li>
<li><input type="checkbox" name="idxname" value="BBB">BBB
ファイル:<!-- FILE --> index_2 <!-- FILE -->個
キーワード:<!-- KEY --> index_2 <!-- KEY -->個
インデックスの最終更新日: <!-- DATE --> index_2 <!-- DATE -->
</li>
<li><input type="checkbox" name="idxname" value="CCC">CCC
ファイル:<!-- FILE --> index_3 <!-- FILE -->個
キーワード:<!-- KEY --> index_3 <!-- KEY -->個
インデックスの最終更新日: <!-- DATE --> index_3 <!-- DATE -->
</li>
</ul>
</p>
</form>
**フォルダ名などの文字化け [#r8807c8c]
windowsの共有フォルダをマウントすると、特定文字「〜」などが「??」で表示される。~
&color(Red){mknmzでインデックスが作成できない場合。EUC-JP-MSを使ってみるとよいかも};
# mount_smbfs -E euc-jp-ms:cp932 -I 172.16.8.51 //ADMINISTRATOR@TEST-WIN-SERVER/desktop /mnt
[[EUC-JP-MSを使えるようにする>FreeBSD/Samba3#B]]
**参考ヒット数を表示しない [#rdadae62]
テンプレートファイル (NMZ.head もしくは NMZ.head.ja) の Form の中で、
<input type="hidden" name="reference" value="off">
という 1 行を追加すると、参考ヒット数は表示されなくなります。
**xlhtmlのバグ [#neb39871]
65536行目でセルをマージしてあると無限ループしてしまう。
解消バージョン
http://www.flateight.com/modules/mydownloads/viewcat.php?cid=1
***Namazuのxlhtmlのパッチ。(xlhtml-0.5.1にパッチをあてる) (^-^ [#f55c5305]
[[パッチとxlhtml-0.5.1>http://www.asahi-net.or.jp/~nd2s-icys/xlhtml.html]]
$ ll
-rwxr--r-- 1 matsui matsui 5749 6 30 13:45 xlhtml-0.5.1-patch-03
-rwxr--r-- 1 matsui matsui 263933 6 30 13:45 xlhtml-0.5.1.tar.gz
$ tar zxvf xlhtml-0.5.1.tar.gz
$ cd xlhtml
$ patch -p1 < ../xlhtml-0.5.1-patch-03
$ ./configure
$ make
# make install
・パッチを当てると、デフォルトのものとサイズが変わっている事を確認。
$ ll xlhtml/xlhtml
-rwxrwxr-x 1 matsui matsui 129772 6 30 14:02 xlhtml/xlhtml
$ ll /usr/local/bin/xlhtml
-rwxr-xr-x 1 root wheel 129537 4 6 13:51 /usr/local/bin/xlhtml
**参考ページ [#tf5af016]
kakasi(KAKASI)とchasen(茶筌)とMeCab(和布蕪)の比較ができるサイト~
http://nomadscafe.jp/test/keitaiso/index.cgi