忍者ブログ

2024-03-19(Tue)

[PR]

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

2009-03-20(Fri)

全文検索の導入(2) Hyper Estraierを導入する

さてさて、続きです。
全文検索としてNamazuが有名ですが、ここはあえてHyper Estraier(ハイパーエストレイア?)を導入することにしました。
だってNmazu難しそうなんだもん。

さて、ここでHyper Estraierの紹介。
平林幹雄氏(現Mixi)が作成した、全文検索システム。
HPに詳しい説明が記載されているので一読するといいが、何分機能が多すぎて読む気が失せる。
が、それだけ高機能であるということか。
IPAの未踏ソフトウェア創造事業採択案件でもある。

動作環境はUnixだが、Windowsバイナリ版も公開されている。

で、今回の導入先は、Windows2003サーバーおよび、IIS6なので、Windowsバイナリ版をインストールする。
さぁ、がんばろう・・・

拍手[1回]

「インストール」
インストールそのものはいたって簡単。
まずは、HyperEstraierのWindowsバイナリ版をダウンロードする。
zip圧縮されているので、インストール先のドライブで、展開する。
今回はドライブ直下c: で展開。展開後はc:\Hyperestraier となる
で、コマンドが使えるように、環境変数 PATHの設定をする。
  PATHの設定方法はわかりますよね?

「xdoc2txtのインストール]
今回の要求仕様はマイクロソフトのワード文書、エクセル、そしてPDFも検索できるようにすること。
Windows版HyperEstraierでは、xdoc2txtをフィルターとして使用しています。
が、同梱されているxdoc2txtは古いので2007の形式(.docx、.xlsxなど)には対応していません。
そこで、新しいxdoc2txtをダウンロードします。

ダウンロードはこちら

圧縮解凍した以下のファイルをHyperestraierフォルダに入れます。

  xdoc2txt.exe、zlib.dll

   これがないとPDFのテキスト抽出ができないのよねぇ。

「indexの作成」
HyperEstraierは、index検索方式なので、indexを作成しなくてはなりません。
コマンドプロンプトでインデックスを作成したいフォルダまたはドライブにCDします。

たとえば、c;\indexフォルダに"casket"というindexを作成したい場合は、

cd c:\index

estcmd gather -il ja -cl -fx .pdf,.rtf,.doc,.docx,.xls,.xlsx,.ppt,.pptx T@estxfilt -ic CP932 -pc CP932 -sd -cm -lf -1 -lt -1 casket "検索対象フォルダ"

  "検索対象フォルダ"は、たとえばc:\documents フォルダ以下を検索対象とする場合は、
 "c:\documents"とすればいいです。

サブコマンドの説明はマニュアルを見ていただくのが早いかと。
Windowsの場合は、 -ic CP932  (引数の文字コードをCP932とする)
                                       -pc CP932  (ディレクトリの文字コードをCP932とする)
の二つがきもです。そうしないと、文字化けしてしまいます。CP932の意味は?深く考えないでください。

indexを作成している間中コマンドプロンプト画面がスクロールしていかにも処理していますよで好きなのですが、これではちゃんとできているかわからないので、私はログファイルに書き出すようにしています。
しかし、ログの出力は大量の文書をindex化するには不向き。文書毎に結果を吐き出しますから。
気を付けてくださいね。テストの段階では少なめの文書にしたほうがいいです。

  estcmd gather -il ja -cl -fx .pdf,.rtf,.doc,.docx,.xls,.xlsx,.ppt,.pptx T@estxfilt -ic CP932 -pc CP932 -sd -cm -lf -1 -lt -1 casket "c:\document" > estgather.log

これをUTF-8で読み書きできるメモ帳でエラーがでていなければindex作成はOKです。

「ここでコマンドで検索」
一応テストしてみます。
コマンドプロンプトで、c:\indexに移動して・・・・

estcmd search -ic CP932 -vh -max 8 casket "検索語" > msg.txt

msg.txtに結果がかかれますから、UTF-8で読み書きできるメモ帳で開いて検索できていれば、検索エンジンの設定はOKです。

さぁ、次はWebから検索できるようにしましょう・・・・。
ってもう眠いのでまた次回に。



PR

この記事にコメントする

Name
Title
Mail
URL
Comment
Pass
Pictgram
Vodafone絵文字 i-mode絵文字 Ezweb絵文字

無題

2017-03-16 00:36

Hyper Estraier 素晴らしいですよね。富士ゼロックス時代の平林さんを、ちょっとだけ知ってます。
自分も社内サーバーの全文検索に何を導入するかで、色々悩みましたが、最終的にこれに決まりました。
Namazu は、未だに EUC-JP なのが痛いですね。Universal コードを、何故ローカル・コードに狭めなければならないのか? 流石に時代遅れという感じがします。
Linux が完全に UTF-8 に対応して以来、ソースに日本語でコメントを書いても、全く問題が起きなくなり、その便利さに感動しました。
Windows は、ファイルシステムも古いし、権限も、未だに個人パソコンの設計を引き摺っていて、ちゃんとしたサーバーOSという感じがしません。よって、同じ仕組みを、Linux でもWindowsでも、実現出来る様に、ミドルウェア等も選定してます。

Re:無題

2017-04-03 23:44

富士ゼロックス時代の平林さんをご存じとは。mixiに移ってその後退社されて、その後どうされているのでしょうか・・・。その後googleに移られたと噂に聞きますが・・・。
今現在でもHyper Estraierを利用されているのでしょうか。
開発が終了してもうすぐ10年ですよね。どなたかが引き継いでいただけるとよかったのですが・・・。
namazuもその設計思想から時代遅れにならざる得なかったのでしょう。そして2011年に開発がストップしてしまっています。
オープンソースの全文検索は需要があるはずですが、ほとんどなくなってしまいました。今ではFessぐらいでしょうか。数年前にFessに乗り換えました。
ただ、インデックス作成時間がやたらかかるのに困っています。

この記事へのトラックバック

この記事にトラックバックする

Amazon

PR

情報サービス

楽天

ソフト関連

メーカー直販PC

周辺機器

ランキング

プロフィール

HN:
NORI
性別:
男性
趣味:
車でどこへでも
自己紹介:
文学部卒業ながら、ひょんなことからシステム会社に就職。
しかしながらあまりの激務に退職。もうシステム系はいやだと思っていたが、ひょんなことから企業の電算室に勤務することとなる。

カレンダー

02 2024/03 04
S M T W T F S
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

ブログ内検索

Google
Web ブログ内

最新TB

アクセス解析