前回 Nutch の Lucene 形式のインデックスを Solr から覗いてみました。
中身を覗いてみることはできたものの以下の課題もでました。
- host や site、contentといったデータが表示されない。
- 日本語で検索できない。
この辺の対応には Nutch のデータを使って、別途 Solr でインデキシングし直して新しいインデックスを作った方が良さそうです。
Nutch にはこのために solrindex という命令が用意されています。
手順としては
- Solr の環境を作る
- solrindex を実行する
という手順になります。
前提条件
以下の説明の前提条件です。
- Solr のマルチコアを使うことを前提としています。
- マルチコアについてはこちらを参考にしてください。
- [Solr] マルチコア (Multi core) ってすっげー便利で実は簡単
- トークナイザには StandardTokenizerFactory を使います。
- この場合日本語は1-gramでトークナイズされます。
- 2-gramがよければCJKTokenizerFactoryにしてください。
- 日本語形態素解析器を使うこともできます。
- 日本語形態素解析器のトークナイザの設定については以下が参考になると思います。
- [Solr][Sen] 日本語形態素解析器Senを導入する その1 Senのインストール
- Solr][Sen] 日本語形態素解析器Senを導入する その2 lucene-jaのインストール
- Solr][Sen] 日本語形態素解析器Senを導入する その3 インデキシングする
- Solr][Sen] 日本語形態素解析器Senを導入する その4 再現率が高いNグラム
- Solr][Sen] 日本語形態素解析器Senを導入する その5 精度なら形態素解析
- Solr][Sen] 日本語形態素解析器Senを導入する その6 Nグラムと形態素解析には一長一短あり。目的に応じて使い分けよう
- 前回 作った SolrCore nutch0 をコピーして修正するので、nutch0 をまだ作っていない場合は以下を参考に作成してください。
Solr の環境を作る
solr.xml の修正
マルチコアを使って Solr の環境をつくります。
前回作った nutch0 に加えて nutch1 を追加します 。
$ cd $CATALINA_HOME/webapps/solr/ $ vi solr.xml <?xml version="1.0" encoding="UTF-8" ?> <solr persistent="false"> <cores adminPath="/admin/cores"> <core name="nutch0" instanceDir="nutch0" /> <- 前回作ったコア <core name="nutch1" instanceDir="nutch1" /> <- 追加するコア </cores> </solr> $ cp -r nutch0 nutch1 $ cd nutch1/conf
schema.xmlの修正
日本語対応のためにfieldType "text"の設定を変更します。
ここではとりあえずStandardTokenizerFactoryを使っています。日本語はいわゆる1-gramでインデキシングされます。
2-gramがよければCJKTokenizerFactoryにしてください。
形態素解析がよければ形態素解析を行うトークナイザを指定してください。
$ vi schema.xml <fieldType name="text" class="solr.TextField" omitNorms="false" positionIncrementGap="100"> <analyzer> <tokenizer class="solr.StandardTokenizerFactory"/> <filter class="solr.LowerCaseFilterFactory"/> </analyzer> </fieldType>
加えて host, site, content を表示できるように stored="true" にします。
<field name="host" type="url" stored="true" indexed="true"/> <field name="site" type="string" stored="true" indexed="true"/> <field name="content" type="text" stored="true" indexed="true"/>
solrconfig.xml の修正
新しく作る Solr のインデックスの置き場所を指定します。
$ vi solrconfig.xml <dataDir> /home/hoge/nutch-solr-data </dataDir>
サーブレットコンテナの再起動
$ $CATALINA_HOME/bin/shutdown.sh $ $CATALINA_HOME/bin/startup.sh
solrindex を実行する
solrindex を実行して Solr にデータをポストします。
以下は、ホスト名localhost、ポート番号8080の場合の動作確認例です。環境に応じて適宜読み替えてください。
$ cd /home/hoge/local/nutch-2009-05-30_04-01-38/ $ bin/nutch solrindex http://127.0.0.1:8080/solr/nutch1/ crawl/crawldb crawl/linkdb crawl/segments/*
Solr から結果をみてみる
Solr から Nutch の Lucene 形式のインデックスを検索したり表示したりしてみます。
ブラウザから http://localhost:8080/solr/nutch1/admin/ にアクセス。
検索窓にとりあえず「*:*」といれて search ボタンをクリック!
セットアップがうまく行っていると検索結果が表示されると思います。
−<doc> −<arr name="anchor"> <str>Ant</str> <str>Ant</str> <str>http://ant.apache.org/</str> </arr> <float name="boost">0.114505395</float> −<str name="content"> Apache Ant - Welcome the Apache Ant site Home Projects Apache Ant 以下略 </str> <str name="digest">90a5e3ab22dfbd9178e56d76cb26128e</str> <str name="host">ant.apache.org</str> <str name="id">http://ant.apache.org/</str> <str name="segment">20090530193233</str> <str name="site">ant.apache.org</str> <str name="title">Apache Ant - Welcome</str> <long name="tstamp">20090530103311399</long> <str name="url">http://ant.apache.org/</str> </doc> 以下略
前回に比べて content, host, siteが増えていると思います。
日本語で検索することもできます。
このブログをクロールして検索窓に「content:インストール」と入れて検索した結果です。
<doc> − <arr name="anchor"> − <str> [Solr] Solr1.4 インストール手順 ( Linux にコマンド4回だけでインストール完了) </str> <str>2009-05-02</str> <str>2</str> </arr> <float name="boost">0.14731409</float> − <str name="content"> 2009-05-02 - Solr, Python, MacBook Air 最新の日記 記事一覧 ログイン 無料ブログ開設 Solr, Python, MacBook Air <前の日 | 次の日> 2009-05-02 ■ [ Solr ] Solr1.4 インストール 手順 ( Linux に コマンド 4回だけで インストール 完了) Solr を インストール する Solrを Linux に インストール には、下記のように コマンド を4回実行するだけでできます。 % wget http://people.apache.org/builds/lucene/solr/nightly/solr-2009-05-02.tgz % tar xvfz solr-2009-05-02.tgz % cd apache -solr-nightly/example % java - jar start. jar 動作確認する この後、 ブラウザ から http://localhost:8983/solr/admin/ に アクセス して、以下のページが表示されるとOKです。( localhost の部分は Solr を インストール した サーバ にあわせて適宜読み替えてください ) その他 Solrは毎日 アップデート されているので、例のsolr-2009-05-02.tgzの日付の部分は適宜変更してください。 インストール する日の前日の日付に変更すれば最新のSolrが手に入るでしょう。前日にするのは時差のためです。 Solrの実行には Java の1.5以上が必要です。 Windows でも動かすことができます。 adminページをみる ブラウザ は FireFox か Mozilla オススメのようです。 Internet Explorer は スタイルシート の問題でやや見栄えがよくないようです。みられないことはないので気にしなくてもよいですが。 参考ページです。 http://lucene.apache.org/solr/tutorial.html 次回は、Solrに ドキュメント を入れて検索してみます。 ではでは Permalink | コメント(0) | トラックバック(1) | 21:00 <前の日 | 次の日> 日記の検索 詳細 一覧 ページビュー 53708 最新タイトル [Solr] Solrにデータを入れてみる。レッツ インデキシング! [Solr] Solr1.4 インストール手順 ( Linux にコマンド4回だけでインストール完了) [Apache] リバースプロクシの設定方法 [ChaSen] ユーザ辞書を作成する [MySQL]パーディションがパッツンパッツンになったのでmysql一式を他のパーティションに移した。 [MySQL]MySQLで実行中のSQLを殺す方法。ロック対策とか [Tomcat]を80ポートで動かすひとつのやりかた jsvc [Python][ChaSen][CaboCha] Red Hat Enterprise Linux AS release 4 (Nahant Update 7) に Python と ChaSen と CaboCha をインストールしたので手順をメモっとく [Python] CaboCha の Python バインディングのインストールでエラーになったら試してみる価値のあること [さくらインターネット][Python] Python ChaSen を CGI から使う。 カテゴリー Solr MacBook Air CentOS MySQL さくらインターネット その他 MacBookAir Pen Sen Python Tomcat Google App Engine ChaSen CaboCha Apache プロフィール knaka20blue 検索エンジンを使ったシステム開発や導入コンサルティングをしています。備忘録兼、頭の整理のためにこの場をお借りしています。あと、日本語を書く練習もですね。 プライベートはコチラ カレンダー << 2009/05 >> 日 月 火 水 木 金 土 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 最近言及したキーワード Apache Linux hoge localhost root vi wget ではでは アクセス インストール エラー コマンド コンパイル サーバ ソース ディレクトリ ドキュメント ファイル ブラウザ ユーザ キヨリーノのブックマーク Nutch - あがたの慶應非常勤のサイト Nutch tutorial GIGAZINEが「楽天が個人情報を1件10円で販売している」と全力で飛ばし記事 |デジタルマガジン 楽天、利用者のメールアドレスを含む個人情報を「1件10円」でダウンロード販売していることが判明 - GIGAZINE livedoor Developers Blog:全文検索エンジン lucene(ルシーン) を使ってみた - livedoor Blog(ブログ) ITのコミュニケーションが失敗する理由(2):社内SNSに「へぇボタン」をつけてみた (1/2) - ITmedia エンタープライズ Picasa ウェブ アルバム: Googleで無料で写真を共有 MeCab: 未知語処理 SourceForge.net: Files SourceForge.net: Files </str> <str name="digest">f34b477bb7cf6b2e92a3b2b102104137</str> <str name="host">d.hatena.ne.jp</str> <str name="id">http://d.hatena.ne.jp/knaka20blue/20090502</str> <str name="segment">20090530195456</str> <str name="site">d.hatena.ne.jp</str> <str name="title">2009-05-02 - Solr, Python, MacBook Air</str> <long name="tstamp">20090530105503597</long> <str name="url">http://d.hatena.ne.jp/knaka20blue/20090502</str> </doc>
Solr に入れてしまう方が検索機能が充実している分、便利ですね。
ではでは
次は、Excel、Word、PPやPDFから日本語がちゃんととれるか試してみるかな。