Frequently used words (click to add to your profile)

javac++androidlinuxc#windowsobjective-ccocoa誰得qtpythonphprubygameguibathyscaphec計画中(planning stage)翻訳omegatframeworktwitterdomtestvb.netdirectxゲームエンジンbtronarduinopreviewer

最近の作業部屋活動履歴

2023-04-16
2023-03-24
2023-03-22
2023-01-25

最近のWikiの更新 (Recent Changes)

2023-04-16
2023-03-24
2023-01-25
2023-01-08
2023-01-07

Wikiガイド(Guide)

サイドバー (Side Bar)

html用全文検索ソフト

概要

ローカルに保存したhtmlファイル群や、Web上にあるhtmlファイル、またはPDFファイルを、 Webサーバを立てることなく全文検索できるソフトです。 SQLiteを全文検索に、MeCabを形態素解析にそれぞれ使用してます。 doxygen で作成した html リファレンスマニュアルを手軽に全文検索できるようにしたかったので、開発しました。

変更履歴

  • 2014/05/03 Web上にあるファイルも検索できるように変更しました。
  • 2014/05/24 UTF8 以外でエンコードされたhtmlにも対応しました。(文字コード変換にICU4C を使用)
  • 2014/12/31 PDFのテキスト抽出処理を pdf.js から pdfium に変更しました。

ビルド方法

ソースからビルドするか、htmlのインデックス作成から開始するか

  • ソースからビルドしたい方 => src_20141231.zip 、ICU4Cの53.1( http://site.icu-project.org/ )のソース、icupatch_20141231.zip、mecab-jumandic-7.0-20130310.tar.gzをダウンロードし、1. から実行して下さい。
    Visual C++ 2008 Express Edition で、C/C++ランタイムも含めて全てSTATICビルドした、32bit版 の単一exeとして生成する前提で説明していきます。
  • html のインデックス作成から開始したい方 => runtime_20140524.zip をダウンロードし、12.から実行して下さい。

手順

* ビルド手順

- ゼロから始めたい方 => 1. から実行して下さい。
Visual C++ 2008 Express Edition を使い、32bit版 のバイナリを生成する前提で説明していきます。
- html のインデックス作成から始めたい方 => 13. から実行して下さい。
  1. MSYS のインストール
    1. MSYSのサイト(http://mingw.org/wiki/msys/) から mingw-get-setup.exe をダウンロードし、実行する。
    2. 表示されるダイアログ画面の指示に従ってインストールを進める。
    3. MinGW Installation Manager の画面で、msys-base が選択されていることを確認して、Installation メニューのUpdate Catalogue を選択する。⇒インストールが開始される。
    4. http://sourceforge.net/projects/cbadvanced/ のcygpath-enhanced.7z をダウンロードし、MinGW / msys / 1.0 / bin 下に展開する(1.2. でインストール先を指定しなかった場合は、MinGWフォルダは c:ドライブ直下に入っています。)。
  1. ダウンロードしたアーカイブの展開
    1. src_20140503.zip を展開する。
    2. ICU4Cの53.1 (icu4c-53_1-src.zip) を下記の配置になるように展開する。
        src / curl-7.36.0 /
              icu_53_1 / icu / as_is / 
                               packaging / 
                               source /
              libxml2-2.9.0 /
                ...
      
  2. icupatch_20141231.zip を上書きするように展開する。
  3. ICU4C のビルド
    1. Visual Studio 2008 コマンドプロンプトを開く。
    2. 1.3. でインストールしたMSYSのディレクトリにあるmsys.bat をコンソール画面にドラッグ&ドロップする→コマンドプロンプトがMSYSのものに変わる。(1.2. でインストール先を指定しなかった場合は、msys.bat は c:/MinGW/msys/1.0/ に入っています。)
    3. cl を実行できることを確認する (Visual Studio 2008 へのパスが通っていることの確認)。
    4. ICU_53_1 / icu / source まで cd で移動(ソースを d:/work/html_fullsearch 下に展開した場合は、 cd /d/work/html_fullsearch/src/icu_53_1/icu/source で移動できます。)し、./runConfigureICU Cygwin/MSVC --enable-static を実行する。
    5. make を実行する。⇒pkgdata.exe の実行で異常終了が発生する。
    6. Visual Studio 2008 コマンドプロンプトを再び開き、icu_53_1 / icu / source / tools / pkgdata まで cd で移動する。
    7. mk_pkgdata.bat を実行する。
    8. MSYSのコマンドプロンプト画面で、再びmakeを実行する。⇒今度は最後までビルドできる。
  4. libxml2 のビルド
    1. libxml2-2.9.0 / win32 / VC9 / libxml2.sln を開き、Release モードでビルドする。
  5. mecab-0.996 のビルド
    1. Visual Studio 2008 コマンドプロンプトを開く。
    2. mecab-0.996 / src のフォルダまで cd コマンドで移動する。
    3. make.bat を実行する。
  6. mecab-jumandic-7.0-20130310 のビルド
    1. タウンロードしてきた mecab-jumandic-7.0-20130310.tar.gz を展開する。
    2. 展開したフォルダ (mecab-jumandic-7.0-20130310) に cd コマンドで移動する。
    3. 4.3. のディレクトリに PATH を通す
    4. mecab-dict-index -f utf-8 -t utf-8 を行う。
  7. sqlite3 のビルド
    1. sqlite-amalgamation-201404281756 へ cd コマンドで移動する。
    2. mk.bat を実行する。
  8. V8 のビルド
    1. v8_3.28.73 / tools / visual_studio / v8.sln を開き、 Release モードでビルドする。
  9. zlib のビルド
    1. Visual Studio 2008 コマンドプロンプトを開く。
    2. zlib-1.2.8 のフォルダまで cd コマンドで移動する。
    3. nmake -f win32/Makefile.msc を実行する。
  10. curl のビルド
    1. curl-7.36.0 / vs / vc9 / lib / vc9libcurl.sln を開き、 Release モードでビルドする。
  11. pdfium のビルド
    1. pdfium / win / vc9 / pdfium.sln を開き、 Release モードでビルドする。
  12. HTML_FullSearch のビルド
    1. html_fullsearch.cpp のあるディレクトリへ cd コマンドで移動する。
    2. mk.bat を実行する。
  13. インデックスの作成
    1. 任意の場所に新しいフォルダを作成する。
    2. そのフォルダの中に html ディレクトリを作成する。
    3. html ディレクトリ直下に、インデックス作成対象の html ファイル群をコピーする。 (全て utf-8 エンコーディングとなっていること)
    4. 12.1.のフォルダ直下に、下記ファイルをコピーして持ってくる。
      • src_20140503.zipから始めた方
        最初から入っていた refman.hta、start.html、create_db.bat、create_db_from_urllist.bat、
        COPYING.txt、pdf.js の中に入っている全ての .js ファイル
        6.3. で生成した、libmecab.dll
        6.4. で生成した、matrix.bin、sys.dic、model.bin、char.bin、unk.dic、dicrc
        11.1. で生成した、html_fullsearch.exe
      • html のインデックス作成から始めた方
        runtime.zip の中身
    5. ローカルhtmlのリンクを自動的に辿ってインデックスを作成したい場合
      1. start.html をテキストエディタで開き、<a href="~" の ~ のところへ、 12.3. で配置した html ファイル群のメインページへの相対パスに書き換え、上書き保存する。
      2. create_db.bat を実行する。
    6. URL リストから HTML または PDF をダウンロードしてインデックスを作成したい場合
      1. URLリスト(1行1URL のテキストファイル)を作成し、12.1. のフォルダに urllist.txt として保存する。
      2. create_db_from_urllist.bat を実行する。
    7. refman.hta をテキストエディタで開き、 function gohome() の次の行の "html/index.html" となっているところをhtml ファイル群のメインページへの 相対パスに書き換え、上書き保存する。
  14. 動作確認
    1. refman.hta をダブルクリックし、メインページが表示されていることを確認する。
    2. 検索ボックスに何か検索文字列を入力後、検索ボタンを押し、検索結果が表示されることを確認する。
    3. 検索結果のハイパーリンクをクリックし、そのページに移動することを確認する。
  15. インストール
    1. 13.1. で作成したフォルダごと、インストール先のフォルダへコピー&ペースト、またはカット&ペーストする。

ダウンロード

icupatch_20141231 の内容について

  • icu_53_1 / icu / source / runConfigureICU ... Cygwin/MSVC のビルドオプションの -MD を -MT に変更(C/C++ ランタイムをスタティックリンクするため)
  • icu_53_1 / icu / source / data / Makefile.in ... rc の処理で make が失敗する問題の修正
  • icu_53_1 / icu / source / tools / pkgdata / mk_pkgdata.bat ... make で作成した pkgdata.exe が適切に動作しない問題への対応。 このバッチでビルドし直してmakeを再実行。

参考サイト