|
||||||||||||||||||||||
| 1 2 3 次のページ | ||||||||||||||||||||||
| Yahoo!オークションの商品検索プログラム | ||||||||||||||||||||||
|
本連載ではJBoss Enterprise Middlewareを使った「エンタープライズレベルの検索サービス」を提供するWebアプリケーションの作成を行う。検索エンジンとしてオープンソースソフトウェア(以下、OSS)のApache Lucene(以下、Lucene:ルシーン)を使用する。 前回「第1回:OSS検索エンジンLuceneとは」では、検索エンジンLuceneについて詳しく解説した。今回はいよいよ実際の検索プログラムを作成していく。 ここでは簡単なサンプルプログラムとするため、JBoss Enterprise Application Platform(以下、JBoss EAP)のJBoss Application Server上で動作するJSPプログラムを作成する。JBoss EAPのインストールについては以下記事を参照していただきたい。
JBoss Enterprise Application Platformの全貌
第2回:JBoss Enterprise Application Platformを操作する また、検索プログラムの動作確認のために必要となるテキストデータは、「Yahoo!オークション」に出品されている商品データを使用する。なお、本連載ではプログラムのソースコードの一部を取り上げながら解説していくが、完全なプログラムは以下のWebサイトからダウンロードできる。
Yahoo!オークション検索アプリケーションのダウンロードページ
http://www.rondhuit.com/download.html ダウンロードしたZIPファイルには検索プログラムの動作確認ができるように、数件の商品データサンプルが含まれている。使い方はZIPファイルの中にある「readme.txt」を参照していただきたい。 ファイルサイズの問題があるため、ZIPファイルには商品データを数件しか入れていないが、Yahoo!オークションには常時1千数百万件もの商品が出品されているようだ。 Yahoo!オークションの商品データは、Yahoo!デベロッパーネットワークで提供されているWebサービスを使って取得することができる。時間とディスク容量に余裕のある方は、商品データを取得するクローラ(インターネットなどから情報収集するプログラムのこと。ロボットなどとも呼ばれる)を書いて大量の商品データを収集し、Luceneのインデックスに登録することもできるので、挑戦してみてもよいだろう。
Yahoo!デベロッパーネットワーク Yahoo!オークションWebサービス
http://developer.yahoo.co.jp/auctions/ |
||||||||||||||||||||||
| Luceneの基本クラス | ||||||||||||||||||||||
|
Luceneのプログラムで使用される基本クラスを表1に示す。
表1:基本クラス |
||||||||||||||||||||||
| インデックスの作成プログラム | ||||||||||||||||||||||
|
商品データをLuceneのインデックスに登録するプログラムは次のようになる。
final String INDEX = // インデックスへのパス
商品情報をインデックスに登録(索引付け)するには、最初にIndexWriterのオブジェクトを取得してインデックスを書き込みオープンにする必要がある。それには、インデックスへのパス情報と使用するAnalyzerを指定してIndexWriterのコンストラクタを呼び出せばよい。そして、検索対象となる文書(ここでは商品データ)であるDocumentオブジェクトをIndexWriterのaddDocument()メソッドでインデックスに追加する。 この処理を商品の数だけ繰り返してインデックスに登録していくのである。なお、商品データをDocumentで表現する際に、商品データの属性(商品名、価格、説明など)は、それぞれのFieldオブジェクトを作成してDocumentにadd()メソッドで追加していく。 |
||||||||||||||||||||||
|
1 2 3 次のページ |
||||||||||||||||||||||
|
|
||||||||||||||||||||||
|
|
||||||||||||||||||||||
|
||||||||||||||||||||||
|
|
||||||||||||||||||||||
|
||||||||||||||||||||||
|
|
||||||||||||||||||||||
|
||||||||||||||||||||||
|
|
||||||||||||||||||||||
|
||||||||||||||||||||||

