関口宏司のLuceneブログ

OSS検索ライブラリのLuceneおよびそのサブプロジェクト(Solr/Tika/Mahoutなど)について
Lucene+Ajaxサンプルがエラーになる場合の対処法
読者からの指摘でLucene本の「6.6 Lucene+Ajax=インクリメンタルサーチ!」のサンプルの実行で「Java 1.4+Tomcat 5.0.28は動作するが、Java 5.0+Tomcat 5.0.28のときにJavaScriptエラー(図)が発生して動作しない」というのがあった。

page error

page error detail

調べたところ、サンプルで使用しているDWRの部分でエラーが発生しており、DWRのページによるとTomcatでXalanを正しくセットアップしていないことが原因であるようだ。

私の環境では、次のようにしたらJava 1.4でも5.0でもどちらでも動作したので、参考にしていただきたい:

1.$CATALINA_HOME/common/endorsedディレクトリにあるxercesImpl.jarとxml-apis.jarを削除。
2.http://www.apache.org/dyn/closer.cgi/xml/xerces-j/から最新のXerces-Jをダウンロード。
3.ダウンロードしたファイルを解凍し、xercesImpl.jarとxml-apis.jarを$CATALINA_HOME/common/libにコピー。

| 関口宏司 | 書籍「Apache Lucene入門」 | 09:52 | comments(0) | trackbacks(0) |
「コンプリート版」サンプル、ダウンロード開始
「Apache Lucene入門」の出版から半年が経ち、Luceneをはじめ同書のサンプルプログラムが使用している周辺ツールのバージョンがバージョンアップした関係で、本に書いてあるとおりのバージョンをそろえるのに手間がかかるようになって来た。そこで、サンプルをLucene 2.0対応にすると同時に必要ツールの大部分をZIPファイルに同梱した「コンプリート版」なるものを作成した。

以下よりダウンロードできる:
http://www.rondhuit.com/publicity.html

書籍出版時はLucene 1.9がLuceneの最新バージョンであり、同書もLucene 1.9を想定して書かれている。しかし現在はLucene 2.0となっており、Lucene 2.0対応のJapaneseAnalyzerが出てきたりして、その関係でサンプルコードの一部がコンパイルできないものが出てきた。

Lucene 2.0になったときにLucene 1.9でdeprecatedであったAPIのほとんどが削除されたため、サンプルコードに同梱していたLucene-jaのデモがコンパイルできなくなった。出版時のLucene-jaのバージョンはLucene 1.4.3対応版だったため、Lucene 1.4.3当時に問題なかったAPIをそのデモの中で数多く呼び出していた。出版時はLucene 1.9でありdeprecatedになった程度であったので、Lucene-jaのデモはコンパイル時に警告メッセージが出るだけでコンパイルは通っていた。しかしLucene 2.0になったときにAPIそのものが別のものに置き換えるよう強制されてしまったため、コンパイルエラーが出るようになった。

また、Lucene-jaが出版当時のLucene 1.4.3対応版からLucene 2.0対応版に変わった際に、DigitFilterのコンストラクタがpublicからprotectedに変わってしまったので、DigitFilterを使用したサンプルプログラムのコンパイルが通らなくなってしまった。そのため、「コンプリート版」からはDigitFilterを使用したサンプルプログラムは削除してある。

「コンプリート版」にはlibディレクトリに多くの周辺ツール(JARファイル)を含んでいるのでサイズが大きい(約10MB)。

上記ダウンロードページからはこれまでの「旧版」もいまだダウンロード可能である。こちらはLucene 1.9を使い、本のAppendix Aに書いてあるバージョンに必要ツールのバージョンをきちんと合わせ、本の手順どおりにインストールと設定を行えば必ず動作するので、必要であればこちらも試していただきたい。
| 関口宏司 | 書籍「Apache Lucene入門」 | 12:58 | comments(2) | trackbacks(0) |
書籍に関する問い合わせフォームの設置
書籍「Apache Lucene入門」と「Apache Ant」の「お問い合わせフォーム」を設置したので、不明点・不具合・ご要望・ご質問などお知らせください。

なお、個別の質問に回答するというよりは、FAQなどを作成するのに利用しようと思っているので、あらかじめご了承ください。

書籍に関する問い合わせフォーム
http://www.rondhuit.com/publicity.html
| 関口宏司 | 書籍「Apache Lucene入門」 | 09:29 | comments(0) | trackbacks(0) |
Amazonの読者評価・・・星ひとつ
先日、久しぶりにAmazonをチェックしたら「Apache Lucene入門」にはじめてのレビューの書き込みが!・・・と思ったらナント星がひとつ。。。がーん。

「いただきました、星ひとつですっ!」

この瞬間ほど堺正章の悲哀を感じたことはない。しかし堺シェフは毎週その痛みに耐えているのである。私も真摯に評価者の声に耳を傾けてみよう。


「4章までは理解しやすくGOOD」とのこと。ありがとうございます。

しかし、「サンプルがビルドできない」とご立腹のご様子。そうでしたか。私の周りではそのような声はないので、気がつかないビルド手順の説明の抜けがあったのかもしれません。申し訳ございませんでした。私やいつも一緒に仕事をしている人はビルドに使用しているAntを使いこなしているので「入門書」にしてはLucene以外の部分で難しかったかもしれません。


・・・ということで周囲の声を聞いているだけではわからない・気がつかない点があるようなので、近々問い合わせページを開設し、可能な範囲で対応できるようにしようと思っている。しばらくお待ちいただきたい。
| 関口宏司 | 書籍「Apache Lucene入門」 | 09:57 | comments(2) | trackbacks(0) |
第5章の「ant dbinit」でエラーになる場合の対処方法
「Apache Lucene入門」の読者の方から「第5章のサンプルが動かない」という報告があり、その後格闘の結果「動きました」という連絡があったので、同じ症状に悩んでいる方のためにここにその対処方法を簡単に記す。

症状はP.327の「ant dbinit」がうまくいかない、というもの。

このとき、報告していただいた対処方法は、classes/hibernate.cfg.xmlファイルの先頭の部分を次のように「2.0」を「3.0」に書き換える、というものである:



"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">



なお、詳しいやり取りは、http://lucene.jugem.jp/?eid=78のコメント欄にあるので、参考にしていただきたい。
| 関口宏司 | 書籍「Apache Lucene入門」 | 21:05 | comments(3) | trackbacks(0) |
「内容紹介」の訂正
本書はまだ店頭発売前だが、AmazonやYahoo!ブックスではすでに予約販売が始まっている。

これらのオンライン書籍販売サイトで次のような「内容紹介」がなされている(4月30日現在):


Apache LuceneとはJavaで作られたGoogleのような全文検索システムです。
Luceneを使えば,一味違う高機能なWebアプリケーションを作ることができます。
たとえばWeb通販・ショッピングサイト,企業サイトの情報サービス,学術系サイトでの情報サービスなどが挙げられます。Webに付加価値を与えることができるのです。
本書は,全文検索システムの仕組みと機能を初心者にもわかりやすく解説し,豊富なサンプルコードで実装を示してゆきます。
構文解析プログラミングの教科書としてもどうぞ!非常に奥深い世界が広がっています。


これはおそらく出版社が考えてオンライン書店に送ったものだろうが、気になる点がある。明らかに事実と違う箇所があるのだ。

訂正した内容紹介文は担当編集者に送付済みだが、実際にオンライン書籍販売サイトの情報がいつ書き換わるかは定かではないので、ここにも訂正後の内容を示しておくこととする。訂正したい部分は上記で赤字で示した部分である。


(誤)「Apache LuceneとはJavaで作られたGoogleのような全文検索システムです。」


Apache Luceneは出来合いのシステムではなく、全文検索システムを構築するためのライブラリである、というのが正しい説明だ。また、Googleは世界中のWebページをロボットが「クロール」してインデックス(転置索引)を作成するが、Luceneには「クロール」する機能はない。これらのことは本書に明記している。


(誤)「構文解析プログラミングの教科書としてもどうぞ!」


本書は「構文解析プログラミング」についてはまったく触れていない。これは誇大広告というよりは事実無根である。「構文解析プログラミング」について学びたい人は本書を買ってはいけない。その場合は他書をあたって欲しい。

以上を踏まえ、担当編集者に送った訂正後の紹介文は次の通りである:


Luceneは全文検索システムを構築するためのJavaのライブラリです。
Luceneを使えば,一味違う高機能なWebアプリケーションを作ることができます。
たとえばWeb通販・ショッピングサイト,企業サイトの情報サービス,学術系サイトでの情報サービスなどが挙げられます。Webに付加価値を与えることができるのです。
本書は,全文検索システムの仕組みと機能を初心者にもわかりやすく解説し,豊富なサンプルコードで実装を示してゆきます。
やさしく説明する工夫(挿話)やAjaxとLuceneを組み合わせた「インクリメンタルサーチ」など楽しい仕掛けも盛りだくさん!非常に奥深い世界が広がっています。

| 関口宏司 | 書籍「Apache Lucene入門」 | 13:23 | comments(28) | trackbacks(0) |
Lucene替え歌
ここにある事情でボツになった本書向けの「まえがき」の一部を掲載する。

それは、「Lucene替え歌」である。

本のまえがきに「替え歌」を載せてしまう。かつてそんな技術書があっただろうか。いや、ない。なので、やってみた。

ただし、担当編集者の池本さんに気づかれないようにこっそりと原稿に紛れ込ませた。

しかし、さすがはベテラン編集者だ。彼の目をごまかすことはできなかった。そして彼は静かに、しかしきっぱりとこう言った。

「替え歌はだめです。」

こうして、私の野望は潰えた。

以下はその幻の原稿である:




読者プレゼント

Luceneの替え歌(井上陽水「夢の中へ」のメロディーでご一緒に!)


探し物は何ですか?

見つけにくいものですか?

Googleの中も、Yahoo!の中も、

探したけれど見つからないのに

まだまだ探す気ですか?

それより僕とLuceneを勉強しませんか?

ホームページへ、アプリケーションへ

検索機能を実装したいと思いませんか?


Woo woo woo さあ〜・・・・・・ということで、本書でLuceneを勉強しましょう!
| 関口宏司 | 書籍「Apache Lucene入門」 | 16:23 | comments(0) | trackbacks(0) |
Apache Lucene入門
一昨日より、拙著「Apache Lucene 入門 - Java・オープンソース・全文検索システムの構築」がアマゾンで予約販売を開始した。
表紙画像はまだないようなので、ここに表示したい。こんな表紙である:

本の表紙

小さくてよくわからないかもしれないが、写真の部分は渦巻銀河である。そして、渦巻きの白い部分はよく見ると「テキスト」になっている。

全文検索は膨大なテキスト情報から検索質問語をキーにして目的の文書を取り出す機能であるが、「膨大なテキスト情報」を数千億もの星が集まって構成されているといわれる「銀河」になぞらえたイラストで、なかなかしゃれている。

最近、こういった本の表紙イラストや立ち上げ準備中の新会社のロゴという、デザイナーの仕事(アウトプット)を間近で見る機会が続いているが、感心しきりである。デザイン自体もそうだが、彼らの発想もまたすばらしい。

さて、肝心の本の中身だが、まえがきの後に書いた「本書の構成」の原稿を以下に貼り付けるので、参考にしていただきたい。

近日中にある事情で「ボツ」になったまえがきの原稿も公開しようと思う。




本書の構成

本書は6章構成になっており、第1章から第4章が前編、第5章と第6章が後編となっている。前編を「基本編」、後編を「応用編」と読み替えてもよい。Luceneのアプリケーションを書くためには「基本編」である第1章から第4章を通読しておくことが望ましい。「応用編」である第5章と第6章は余力があれば読むとよいだろう。

第1章は、全文検索とLuceneの基本知識の習得を目標とし、これらについて簡潔に述べている。Luceneに関しては、最初の全文検索のサンプルプログラムを作成し、その内容や動作を紹介している。サンプルプログラムの題材(全文検索のためのコンテンツ)には、日本でもっとも有名なファミリーである「サザエさん一家」を使用している。

第2章は、Analyzer(アナライザー)について説明している。Analyzerは、全文検索の対象となるドキュメントテキストを分析し、単語を取り出す働きをするものである。本章では特に日本語のテキストの分析に重きを置き、JapaneseAnalyzerの解説にページ数を割いている。その後、CJKAnalyzer、StandardAnalyzerおよびその他のAnalyzerを紹介する。

Luceneは全文検索に「転置索引方式」を採用している。そのため、検索の前にあらかじめ「インデックス」を作成しておかなければならない。第3章では、その「インデックス」の作成方法について説明している。その後、第4章で「インデックス」の検索方法について説明している。全文検索のサンプルデータとしては、サンプルプログラムの内容と動作の理解が進むよう、読者にとって親しみやすいと思われる「技術評論社の書籍データ」と郵便局の「大口事業所等個別番号データ」を用いた。

後編の第5章では、前編で習得した知識を使って、全文検索機能を持ったWebアプリケーションを作成する。このWebアプリケーションの検索機能は、「データベース」、「HTMLファイル」、「XMLファイル」、「PDFファイル」および「Mocrosoft Wordファイル」といった「異種ドキュメント」を透過的に検索し、表示する。

第6章では、「セキュリティ」、「検索質問語の強調表示」、「Ajaxを使用したインクリメンタルサーチ」等々といった、より応用的・発展的な内容を取り上げている。読者のLuceneアプリケーションにいろいろな機能を追加する際のヒントとなるだろう。

なお、Appendix AにはLuceneはじめ、その他の関連ツールおよび本書のサンプルプログラムのインストールと実行方法を掲載している。
| 関口宏司 | 書籍「Apache Lucene入門」 | 10:10 | comments(11) | trackbacks(0) |
+ Solrによるブログ内検索
+ PROFILE
      1
2345678
9101112131415
16171819202122
23242526272829
3031     
<< December 2018 >>
+ LINKS
検索エンジン製品 - 比較のポイント
商用検索エンジンを購入した企業担当者は読まないでください。ショックを受けますから・・・
>>製品比較 10のポイント
+ Lucene&Solrデモ
+ ThinkIT記事
+ RECOMMEND
Apache Solr入門 ―オープンソース全文検索エンジン
Apache Solr入門 ―オープンソース全文検索エンジン (JUGEMレビュー »)
関口 宏司,三部 靖夫,武田 光平,中野 猛,大谷 純
+ RECOMMEND
Lucene in Action
Lucene in Action (JUGEMレビュー »)
Erik Hatcher,Otis Gospodnetic,Mike McCandless
FastVectorHighlighterについて解説記事を寄稿しました。
+ RECOMMEND
+ SELECTED ENTRIES
+ RECENT COMMENTS
+ RECENT TRACKBACK
+ CATEGORIES
+ ARCHIVES
+ MOBILE
qrcode
+ SPONSORED LINKS