Nutch
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
]
開始行:
オープンソースな検索エンジン Nutch のインストールから設定...
* 本家サイト+α [#rbb3149d]
本家サイトはこちら http://www.nutch.org/
開発者向けページはこちら http://www.nutch.org/docs/en/dev...
このページの前半戦の参考ページはこちら http://www.nutch.o...
うちのサーバーで動いてるサンプル http://nutch.happy-campe...
6時間おきに新しいページを求めてネット上を徘徊して回りま...
> 2004/02/18
> 1日1回に変更。
> 1回のデータ更新で、3時間ほど費やされたら、1日の半分...
> 結構データもたまってるみたいだしね。
韓国人のLEEさんが立ち上げている、Nutchサポートサイト http...
* インストール [#l380e3a1]
まずはインストールと行きましょう。
ただし、この状態では日本語は使えません。
まず動かしてみたい人はこのまま読み進めて、日本語環境を整...
> この部分は、http://www.nutch.org/docs/en/tutorial.html ...
> 誤訳や意味不明の場合は mailto:ueshin@happy-camper.st ま...
** 動作環境 [#t752d4ba]
+ Java 1.4.x (Linuxを推奨)
+ Apache Tomcat 4.x
+ Win32では、shellを使うために、cygwin (もしCVSをWin32上...
+ ディスク容量1GB程度、高速回線、1時間ほど、など
> でも、日本語環境に辿り着くまでは、直接ソースをいじくら...
** ことはじめ [#nb472310]
始めに、Nutchコードのコピーを持ってくる。http://www.nutch...
> ''CVSからビルド''
> > cvs -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot...
> > cvs -z3 -d:pserver:anonymous@cvs.sourceforge.net:/cvs...
> > cd nutch
> > ant
> こんな感じだったかな?
次のコマンドを試してみる:
> > bin/nutch
これは Nutchコマンドの使い方を表示する。
** コンセプト [#rc46e927]
Nutchのデータは、2種類ある:
+ Webデータベース。Nutchの知る全てのページとそれぞれのリ...
+ 断片の集合。それぞれの断片は、取得し、まとまりとしてイ...
-- '''fetchlist'''は、取得するページを示すファイル
-- '''fetcher output'''は、取得したページを含むファイルの...
-- '''index'''は、fetcher outputの、Lucene形式のインデッ...
+
以降の例では、Webデータベースをdb、Segmentをsegmentsとい...
> > mkdir db
> > mkdir segments
> ''後々のために''
> この2つのディレクトリ、antが吐き出すビルドディレクトリ...
>
> > ant clean
>
> なんてやった日にゃ、せっかく集めたデータを全て綺麗サッ...
> 別のところに置いておいて、シンボリックリンクなんぞで手...
> ただし、ant clean の前に必ずリンクを外しておかないと、...
** Webデータベースのブート [#be2f6904]
adminツールを使って新しい空データベースを作る:
> > bin/nutch admin db -create
'''injector'''は、URLをデータベースに追加する。DMOZ Open ...
> > wget http://rdf.dmoz.org/rdf/content.rdf.u8.gz
> > gunzip content.rdf.u8.gz
次に、これらのページの適当な部分をWebデータベースに入れる...
> > bin/nutch inject db -dmozfile content.rdf.u8 -subset ...
ファイルを全て解析するので、またちょっと時間がかかる。
これで1000個ほどの未取得URLを持つWebデータベースを手に入...
> ''特定のURLからデータベースを開始する''
> 自分のページからリンクを辿って、検索エンジンにデータを...
> -urlfileというオプションがあるから、これを利用する。
>
> > echo http://ueshin.happy-camper.st/ > urlfile.txt
> > bin/nutch inject db -urlfile urlfile.txt
>
> これで、ここで指定したURLを基点とするデータベースができ...
** ページを取ってくる [#sc9a1f5b]
ページを取ってくるために、まずデータベースからfetchlistを...
> > bin/nutch generate db segments
これは、取ってくる予定になっている全てのページの fetchlis...
> > s1=`ls -d segments/2* | tail -1`
> > echo $s1
このセグメントに対して、fetcherを起動する:
> > bin/nutch fetch $s1
終わったら、この結果をデータベースに反映する:
> > bin/nutch updatedb db $s1
これでデータベースは、始めの集合が示していたページ全ての...
次に、データベースのリンク解析を5回繰り返し実行して、次...
> > bin/nutch analyze db 5
さて、トップスコア1000ページの新しいセグメントを取ってく...
> > bin/nutch generate db segments -topN 1000
> > s2=`ls -d segments/2* | tail -1`
> > echo $s2
>
> > bin/nutch fetch $s2
> > bin/nutch updatedb db $s2
> > bin/nutch analyze db 2
はい、もう1回:
> > bin/nutch generate db segments -topN 1000
> > s3=`ls -d segments/2* | tail -1`
> > echo $s3
>
> > bin/nutch fetch $s3
> > bin/nutch updatedb db $s3
> > bin/nutch analyze db 2
この時点で数千のページを取ってきた。さぁ、インデックスを...
** インデックスをつける [#n18ae28c]
それぞれのセグメントにインデックスをつけるため、indexコマ...
> > bin/nutch index $s1
> > bin/nutch index $s2
> > bin/nutch index $s3
それから、検索する前に、重複したページを消す必要がある:
> > bin/nutch dedup segments dedup.tmp
検索の準備完了!
** 検索する [#tabd029f]
検索するには、Nutch warファイルをサーブレットコンテナに置...
> NutchリリースをダウンロードしないでCVSのソースをチェッ...
> > ant war
Tomcatが ~/local/tomcat にあるとすると、次のコマンドでNut...
> > rm -rf ~/local/tomcat/webapps/ROOT*
> > cp nutch*.war ~/local/tomcat/webapps/ROOT.war
webappは、Tomcatを起動したところからの相対パス、./segment...
> > ~/local/tomcat/bin/catalina.sh start
それから、http://localhost:8080/ にアクセス、and have fun!
> ''と行きたいところだが''
> 日本語の環境からアクセスしても、多分白紙のページが表示...
> これをきちんと表示させるには、以下に書く修正が必要にな...
* 日本語環境の構築 [#x81e6641]
表示、検索キーを日本語化するには、以下のようにする必要が...
> ただし、検索するときに日本語を使っても、正しく単語を読...
> 例えば、「あいうえお」で検索すると、「あ」「い」「う」...
> この辺りの解決策は、そのうち対応されるかもしれませんが...
> わかったら引き続き追記していきますので、今のところはこ...
以下では、CVSからソースコードを取ってきたものとします。
CVSからファイルを取ってくる方法は、上に書いてあります。
** 日本語ロケールのためのディレクトリ名修正 [#na5bbe6e]
> ''注意''
> 以降の説明中では、Nutchをインストールしてあるディレクト...
> また、基本的に、$NUTCH_HOMEをカレントディレクトリとしま...
Nutchでは、ブラウザの送信する '''Accept-Language''' ヘッ...
これにより取得できるロケールは、''ja''ですが、Nutchのデフ...
そこで、日本語用に割り当てられている ''jp''というディレク...
> > mv docs/jp docs/ja
> > mv src/web/include/jp src/web/include/ja
> > mv src/web/pages/jp src/web/pages/ja
>
> ''jp''を参照しているファイルをそれぞれ''ja''に変更
>
>> 変更が必要なファイルは、以下
>> build.xml 234行目辺り
>> src/web/style/nutch-header.xsl 29行目辺り
** 日本語ロケール用プロパティファイルを作る [#k3e41037]
検索結果を表示するページでは、プロパティファイルを使って...
日本語用のプロパティファイルはまだ作られていないようです...
> ファイル $NUTCH_HOME/src/web/locale/org/nutch/jsp/.sear...
>
>> title = 検索結果
>> search = 検索
>> hits = <b>{0}-{1}</b>件目 ({2}件中):
>> cached = キャッシュ
>> explain = 解説
>> anchors = アンカー
>> next = 次へ
>
> ''' ( = の後はお好みでどうぞ。) '''
> > native2ascii .search_ja.properties > search_ja.proper...
** jspの出力文字エンコードを utf-8 に統一する [#o663b54b]
なぜか、.jspファイル達のエンコード指定がなされていません。
ま、ASCIIですんじゃう人たちには、エンコード指定しなくても...
> それぞれの .jspファイルの pageディレクティブに、 conten...
> さらに、入力パラメータもutf-8にするため、request.setCha...
>
>> 変更が必要なファイルは、以下
>> $NUTCH_HOME/src/web/jsp/内の、anchors.jsp、cached.jsp...
>
> search.jsp に関しては、さらに以下のように修正
>
>> 40行目辺り[http://h-iedes.l-5450y.net/ .]
>> <i18n:bundle baseName="org.nutch.jsp.search" changeRes...
>>
>> 100行目辺り[http://hs-sns.moekoe.jp/ .]
>> <%=URLEncoder.encode(queryString, "utf-8")%>">
** リビルド [#r717a4e0][http://hs-enzyo.17564.info/ .] [#...
ここまできたら、1度リビルドして、tomcatにマウントしてし...
上記 http://ueshin.happy-camper.st/wiki/index.jsp?pid=Nut...
tomcatを再起動したら、nutchにアクセス、デプロイします。
** 検索結果のヘッダ部 [#dba6144e]
検索結果のヘッダ部は、ビルド途中にXSLTで生成されるんだけ...
なので、これだけ最後に手動で編集します。[http://h-iedek.l...
> 上記のサンプルで言えば、~/local/tomcat/webapps/ROOT/ja/...
> なにやらワケワカラン文字化けしたHTMLになってるかもしれ...
>
>> Nutchについて → Nutchについて
>> よくある質問 → よくある質問
>> 開発者 → 開発者
>> 寄付 → 寄付
おめでとうございます!
ここまでくれば、とりあえず見た目だけでも日本語環境にする...
後は、インデックス化の際、検索クエリー、検索結果などにき...
・・・が、これに関しては本格的な開発となってきますので、...
それでは、ごきげんよ〜〜〜!!
[http://muryo.my-cafe.info/ ,][http://hs-mail.17564.info/...
終了行:
オープンソースな検索エンジン Nutch のインストールから設定...
* 本家サイト+α [#rbb3149d]
本家サイトはこちら http://www.nutch.org/
開発者向けページはこちら http://www.nutch.org/docs/en/dev...
このページの前半戦の参考ページはこちら http://www.nutch.o...
うちのサーバーで動いてるサンプル http://nutch.happy-campe...
6時間おきに新しいページを求めてネット上を徘徊して回りま...
> 2004/02/18
> 1日1回に変更。
> 1回のデータ更新で、3時間ほど費やされたら、1日の半分...
> 結構データもたまってるみたいだしね。
韓国人のLEEさんが立ち上げている、Nutchサポートサイト http...
* インストール [#l380e3a1]
まずはインストールと行きましょう。
ただし、この状態では日本語は使えません。
まず動かしてみたい人はこのまま読み進めて、日本語環境を整...
> この部分は、http://www.nutch.org/docs/en/tutorial.html ...
> 誤訳や意味不明の場合は mailto:ueshin@happy-camper.st ま...
** 動作環境 [#t752d4ba]
+ Java 1.4.x (Linuxを推奨)
+ Apache Tomcat 4.x
+ Win32では、shellを使うために、cygwin (もしCVSをWin32上...
+ ディスク容量1GB程度、高速回線、1時間ほど、など
> でも、日本語環境に辿り着くまでは、直接ソースをいじくら...
** ことはじめ [#nb472310]
始めに、Nutchコードのコピーを持ってくる。http://www.nutch...
> ''CVSからビルド''
> > cvs -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot...
> > cvs -z3 -d:pserver:anonymous@cvs.sourceforge.net:/cvs...
> > cd nutch
> > ant
> こんな感じだったかな?
次のコマンドを試してみる:
> > bin/nutch
これは Nutchコマンドの使い方を表示する。
** コンセプト [#rc46e927]
Nutchのデータは、2種類ある:
+ Webデータベース。Nutchの知る全てのページとそれぞれのリ...
+ 断片の集合。それぞれの断片は、取得し、まとまりとしてイ...
-- '''fetchlist'''は、取得するページを示すファイル
-- '''fetcher output'''は、取得したページを含むファイルの...
-- '''index'''は、fetcher outputの、Lucene形式のインデッ...
+
以降の例では、Webデータベースをdb、Segmentをsegmentsとい...
> > mkdir db
> > mkdir segments
> ''後々のために''
> この2つのディレクトリ、antが吐き出すビルドディレクトリ...
>
> > ant clean
>
> なんてやった日にゃ、せっかく集めたデータを全て綺麗サッ...
> 別のところに置いておいて、シンボリックリンクなんぞで手...
> ただし、ant clean の前に必ずリンクを外しておかないと、...
** Webデータベースのブート [#be2f6904]
adminツールを使って新しい空データベースを作る:
> > bin/nutch admin db -create
'''injector'''は、URLをデータベースに追加する。DMOZ Open ...
> > wget http://rdf.dmoz.org/rdf/content.rdf.u8.gz
> > gunzip content.rdf.u8.gz
次に、これらのページの適当な部分をWebデータベースに入れる...
> > bin/nutch inject db -dmozfile content.rdf.u8 -subset ...
ファイルを全て解析するので、またちょっと時間がかかる。
これで1000個ほどの未取得URLを持つWebデータベースを手に入...
> ''特定のURLからデータベースを開始する''
> 自分のページからリンクを辿って、検索エンジンにデータを...
> -urlfileというオプションがあるから、これを利用する。
>
> > echo http://ueshin.happy-camper.st/ > urlfile.txt
> > bin/nutch inject db -urlfile urlfile.txt
>
> これで、ここで指定したURLを基点とするデータベースができ...
** ページを取ってくる [#sc9a1f5b]
ページを取ってくるために、まずデータベースからfetchlistを...
> > bin/nutch generate db segments
これは、取ってくる予定になっている全てのページの fetchlis...
> > s1=`ls -d segments/2* | tail -1`
> > echo $s1
このセグメントに対して、fetcherを起動する:
> > bin/nutch fetch $s1
終わったら、この結果をデータベースに反映する:
> > bin/nutch updatedb db $s1
これでデータベースは、始めの集合が示していたページ全ての...
次に、データベースのリンク解析を5回繰り返し実行して、次...
> > bin/nutch analyze db 5
さて、トップスコア1000ページの新しいセグメントを取ってく...
> > bin/nutch generate db segments -topN 1000
> > s2=`ls -d segments/2* | tail -1`
> > echo $s2
>
> > bin/nutch fetch $s2
> > bin/nutch updatedb db $s2
> > bin/nutch analyze db 2
はい、もう1回:
> > bin/nutch generate db segments -topN 1000
> > s3=`ls -d segments/2* | tail -1`
> > echo $s3
>
> > bin/nutch fetch $s3
> > bin/nutch updatedb db $s3
> > bin/nutch analyze db 2
この時点で数千のページを取ってきた。さぁ、インデックスを...
** インデックスをつける [#n18ae28c]
それぞれのセグメントにインデックスをつけるため、indexコマ...
> > bin/nutch index $s1
> > bin/nutch index $s2
> > bin/nutch index $s3
それから、検索する前に、重複したページを消す必要がある:
> > bin/nutch dedup segments dedup.tmp
検索の準備完了!
** 検索する [#tabd029f]
検索するには、Nutch warファイルをサーブレットコンテナに置...
> NutchリリースをダウンロードしないでCVSのソースをチェッ...
> > ant war
Tomcatが ~/local/tomcat にあるとすると、次のコマンドでNut...
> > rm -rf ~/local/tomcat/webapps/ROOT*
> > cp nutch*.war ~/local/tomcat/webapps/ROOT.war
webappは、Tomcatを起動したところからの相対パス、./segment...
> > ~/local/tomcat/bin/catalina.sh start
それから、http://localhost:8080/ にアクセス、and have fun!
> ''と行きたいところだが''
> 日本語の環境からアクセスしても、多分白紙のページが表示...
> これをきちんと表示させるには、以下に書く修正が必要にな...
* 日本語環境の構築 [#x81e6641]
表示、検索キーを日本語化するには、以下のようにする必要が...
> ただし、検索するときに日本語を使っても、正しく単語を読...
> 例えば、「あいうえお」で検索すると、「あ」「い」「う」...
> この辺りの解決策は、そのうち対応されるかもしれませんが...
> わかったら引き続き追記していきますので、今のところはこ...
以下では、CVSからソースコードを取ってきたものとします。
CVSからファイルを取ってくる方法は、上に書いてあります。
** 日本語ロケールのためのディレクトリ名修正 [#na5bbe6e]
> ''注意''
> 以降の説明中では、Nutchをインストールしてあるディレクト...
> また、基本的に、$NUTCH_HOMEをカレントディレクトリとしま...
Nutchでは、ブラウザの送信する '''Accept-Language''' ヘッ...
これにより取得できるロケールは、''ja''ですが、Nutchのデフ...
そこで、日本語用に割り当てられている ''jp''というディレク...
> > mv docs/jp docs/ja
> > mv src/web/include/jp src/web/include/ja
> > mv src/web/pages/jp src/web/pages/ja
>
> ''jp''を参照しているファイルをそれぞれ''ja''に変更
>
>> 変更が必要なファイルは、以下
>> build.xml 234行目辺り
>> src/web/style/nutch-header.xsl 29行目辺り
** 日本語ロケール用プロパティファイルを作る [#k3e41037]
検索結果を表示するページでは、プロパティファイルを使って...
日本語用のプロパティファイルはまだ作られていないようです...
> ファイル $NUTCH_HOME/src/web/locale/org/nutch/jsp/.sear...
>
>> title = 検索結果
>> search = 検索
>> hits = <b>{0}-{1}</b>件目 ({2}件中):
>> cached = キャッシュ
>> explain = 解説
>> anchors = アンカー
>> next = 次へ
>
> ''' ( = の後はお好みでどうぞ。) '''
> > native2ascii .search_ja.properties > search_ja.proper...
** jspの出力文字エンコードを utf-8 に統一する [#o663b54b]
なぜか、.jspファイル達のエンコード指定がなされていません。
ま、ASCIIですんじゃう人たちには、エンコード指定しなくても...
> それぞれの .jspファイルの pageディレクティブに、 conten...
> さらに、入力パラメータもutf-8にするため、request.setCha...
>
>> 変更が必要なファイルは、以下
>> $NUTCH_HOME/src/web/jsp/内の、anchors.jsp、cached.jsp...
>
> search.jsp に関しては、さらに以下のように修正
>
>> 40行目辺り[http://h-iedes.l-5450y.net/ .]
>> <i18n:bundle baseName="org.nutch.jsp.search" changeRes...
>>
>> 100行目辺り[http://hs-sns.moekoe.jp/ .]
>> <%=URLEncoder.encode(queryString, "utf-8")%>">
** リビルド [#r717a4e0][http://hs-enzyo.17564.info/ .] [#...
ここまできたら、1度リビルドして、tomcatにマウントしてし...
上記 http://ueshin.happy-camper.st/wiki/index.jsp?pid=Nut...
tomcatを再起動したら、nutchにアクセス、デプロイします。
** 検索結果のヘッダ部 [#dba6144e]
検索結果のヘッダ部は、ビルド途中にXSLTで生成されるんだけ...
なので、これだけ最後に手動で編集します。[http://h-iedek.l...
> 上記のサンプルで言えば、~/local/tomcat/webapps/ROOT/ja/...
> なにやらワケワカラン文字化けしたHTMLになってるかもしれ...
>
>> Nutchについて → Nutchについて
>> よくある質問 → よくある質問
>> 開発者 → 開発者
>> 寄付 → 寄付
おめでとうございます!
ここまでくれば、とりあえず見た目だけでも日本語環境にする...
後は、インデックス化の際、検索クエリー、検索結果などにき...
・・・が、これに関しては本格的な開発となってきますので、...
それでは、ごきげんよ〜〜〜!!
[http://muryo.my-cafe.info/ ,][http://hs-mail.17564.info/...
ページ名: