Kazuhiro's blog
ようこそ! Kazuhiro's blog
金曜日, 12月 27 2024 @ 12:07 午後 JST
   

EPWINGの全文検索 その2

Lookup

約15年前にEPWINGの全文検索を試みた事があったのですが、それの焼き直しです。

Hyper Estraierを利用するの前回と同様ですが、専用のインデキサを用意して、直接インデックスを作成できるようにしました。 Lookup 1-4+mediaに対応コードを入れたので、インデックスがあれば自動的に使用できます。



EBWin4の全文検索と比べた時のスペック上の優位点として

  • 外字Unicodeマップで置換されたテキストがインデックスに収録される。
  • 元の辞書に対する容量制限は無いので、Wikipediaもインデックスを作成できる。

があります。ただし、巨大書籍に対しては、インデックスは作成できても検索にはそれなりに時間がかかります。

インデックスの大きさは作成時のオプションにもよりますが、広辞苑第6版で約205MiB、日本語版ウィキペディア (20220220) で約13GiB程度でした。

タグ:Lookup EPWING Hyper Estraier

トラックバック

このエントリのトラックバックURL: http://ikazuhiro.s206.xrea.com/trackback.php/20220424203518904

EPWINGの全文検索 その2 | 3 件のコメント | アカウントの作成
コメントは投稿者の責任においてなされるものであり、サイト管理者は責任を負いません。
eb 4.4.3 のパッチ
投稿者は: ゲストユーザ on 火曜日, 9月 27 2022 @ 08:25 午後 JST
N宮%大阪育ち、です.
  
openSUSE の eb-4,4,3 src.rpm の中を観たところ、以下のパッチが入っていて、Iさんご謹製の eb-4.4.3+u-20100516.tar.gz (eb-4.4.3+u-20100516.tar.gz ではなく、eb-4.4.3+u-20100516.tar ですね)をソースとしてビルドを
試みたところ、出来ました.

運用テストをしていませんが、このパッチ必要ではないでしょうか?

--- eb-4.3/m4/gettext.m4 2006-06-28 09:20:01.000000000 +0200
+++ eb-4.3.new/m4/gettext.m4 2007-02-06 13:04:25.000000000 +0100
@@ -37,7 +37,7 @@
AC_CHECK_HEADERS([locale.h nl_types.h])
AC_CHECK_FUNCS([setlocale])

- AM_LC_MESSAGES
+ gt_LC_MESSAGES

dnl *
dnl * --enable-nls option
@@ -138,7 +138,7 @@
#ifdef HAVE_SETLOCALE
setlocale(LC_ALL, "");
#endif
- bindtextdomain("gttest", ".locale");
+ bindtextdomain("gttest", "locale");
textdomain("gttest");
gettext("foo");
return 0;
@@ -174,7 +174,7 @@
#ifdef HAVE_SETLOCALE
setlocale(LC_ALL, "");
#endif
- bindtextdomain("gttest", ".locale");
+ bindtextdomain("gttest", "locale");
textdomain("gttest");
gettext("foo");
return 0;
@@ -211,7 +211,7 @@
#ifdef HAVE_SETLOCALE
setlocale(LC_ALL, "");
#endif
- bindtextdomain("gttest", ".locale");
+ bindtextdomain("gttest", "locale");
textdomain("gttest");
gettext("foo");
return 0;
@@ -248,7 +248,7 @@
#ifdef HAVE_SETLOCALE
setlocale(LC_ALL, "");
#endif
- bindtextdomain("gttest", ".locale");
+ bindtextdomain("gttest", "locale");
textdomain("gttest");
gettext("foo");
return 0;