LoginSignup
1
0

More than 3 years have passed since last update.

英辞郎をデータベースに入れて全文検索(個人用辞書 MyDictionaryReader)

Last updated at Posted at 2021-02-02

変更履歴

  • 2021/02/06 MyFastDictionaryからMyDirectionaryReaderに改名
    • (辞書を読むツールということを強調するため)



英辞郎・和英辞郎・例辞郎・略語郎などをデータベースに入れて、Webから検索できるようにしました。
名前は、MyDictionaryReaderです。

ソースコード公開しています。
(プロのプログラマーではないので、なんとか動けばいいレベルです)

MyDictionaryReaderの特徴

  • 英辞郎の辞書データを利用するのが基本
  • データベースの技術を使うので、全文検索が高速
  • 単語の先頭だけでなく、途中に一致するものを表示可能
  • 単語からの検索だけでなく、訳の部分からも検索可能
  • 複数の検索キーワードに対応(複数のキーワードが含まれているものを表示)
  • 検索キーワードはわかりやすいように、文字の色を赤にしました。
  • WebベースなのでOSに関係ない。
    • Windows、Mac、Android、iOSなどに縛られない。
    • レンタルサーバに置けば、リモートからでも検索可能 *僕のWindows PCでは、xamppで動かしています。 *ダウンロードして、ファイルをWebサーバに置けば動くはず。

スクリーンショット

「和英辞郎」で単語検索
1_和英辞郎_単語.jpg

「英辞郎」の単語検索で、複数キーワードで、部分一致
2_英辞郎_単語_複数_部分一致.jpg

「英辞郎」の説明文を部分一致で検索
3_英辞郎_説明_部分一致.jpg

「例辞郎」の説明文を部分一致で検索
4_例辞郎_説明_部分一致.jpg

スマホだとこんな感じです。
5_スマホ.jpg

開発理由

英語を勉強するために辞書はあった方がいいです。
Webでも可能ですが、多く検索する場合には少し使いずらいです。
もっと便利な辞書が欲しい。
Windowsでも、Macでも、Androidでも、iOSでも、Linuxでも使えるようにしたい。

技術選定

いつでもどこでも検索できるようにWebシステムしました。
できるだけ簡単に作れる技術を選定しています。

  • Webに特化した簡単な言語のPHP
  • お手軽なデータベースのSQLite (ファイル置くだけ)
  • フレームワークは、お手軽なCodeigniter (ファイル置くだけで動く)
  • HTML/CSSフレームワークは、定番で検索したら情報が多くでてくる Bootstrap。スマホも対応。

前に作った SimpleIPAM (https://github.com/kuritaka/SimpleIPAM ) を流用
IP管理表を通して学ぶインフラが作る社内Webシステム

GitHub

ソースコードはGitHubで管理していきます。
https://github.com/kuritaka/mydictionaryreader

僕は、プロのプログラマーではないので、なんとか動けばいいレベルです。

今後の予定

ロングマンや広辞苑やE-DICなど辞書データを充実させていきます。
データ変換の方法は、把握していて、できるはず。


苦労メモ

辞書のデータが大きい

SQLiteのファイルサイズをできる限り小さくなるように工夫しました。

  • 辞書データは大きいので1辞書、1ファイル(1データベース)にしました。

  • 検索文字列とキーワードが、完全に一致することは、あまりないはずなので、インデックスは作りません。

  • プライマリーキーのidで、検索をひっかけたりはしないので、プライマリーキーは不要。

  • 1行ずつInsertしたら、終わらない。

    • SQLをトランザクション対応にしたら、すぐに終わりました。


テキスト形式の英辞郎をデータベースにする方法

長くなってしまったので、こっちにまとめました。
英辞郎などのデータをSQLiteに入れる方法

1度しかやらないし、できればいいやくらいです。


1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0