Aspenを使用すると、ブラウザを介してプレーンテキストファイルの大きなコーパスを検索できます。
~/ebooks/のように、すべてのファイルを1つの場所に置きます:
$ tree ~/ebooks
/Users/ian/ebooks
└── Project Gutenberg/
├── Beowulf.txt
├── Dracula.txt
├── Frankenstein.txt
$ docker-compose up -d
Creating network "aspen_default" with the default driver
Creating elasticsearch ... done
Creating aspen ... done
Apache Tikaをラップする付属のconvertユーティリティを使用して、プレーンテキストに変換します。データディレクトリに対するファイル名を渡します。
$ ls ~/ebooks
Project Gutenberg Test.docx
$ docker-compose run aspen convert Test.docx
Starting elasticsearch ... done
Test.docx doesn't exist, trying /data/Test.docx
Creating /data/Test.txt...
...
OK
$ ls ~/ebooks
Project Gutenberg Test.docx Test.txt
ElasticSearchをリセットすることから始めて、すべてが機能していることを確認してください。
$ docker-compose run aspen es-reset
Starting elasticsearch ... done
Results from DELETE: { acknowledged: true }
✓ Done.
次に、すべての.txtドキュメントをインポートします。 importスクリプトは、ドキュメントのタイトルを自動的に把握しようとします。
$ docker-compose run aspen import
Starting elasticsearch ... done
→ Base directory is /app/public/data
▲ Ignoring non-text path: Test.docx
→ Test.txt → Test Document
→ Project Gutenberg/Beowulf.txt → The Project Gutenberg EBook of Beowulf
→ Project Gutenberg/Dracula.txt → The Project Gutenberg EBook of Dracula, by Bram Stoker
→ Project Gutenberg/Frankenstein.txt → Project Gutenberg's Frankenstein, by Mary Wollstonecraft (Godwin) Shelley
✓ Done!
データディレクトリに比べてディレクトリまたはファイル名でimportを実行することもできます。たとえば、 import Project Gutenbergまたはimport Project GutenbergDracula.txt 。
時々、プレーンテキスト文書は奇妙に行動します。 bin/importタイトルを抽出できないかもしれませんし、検索ハイライトがオフになっているかもしれません。ファイルには、間違った回線のエンディングまたはそれらの迷惑なUTF-8 BOMヘッダーの1つがある場合があります。テキストファイルでdos2unixを実行して、それらを修正してみてください。
http:// localhost:3000/にアクセスして、検索を開始してください!
Dockerを介してElasticsearchを使用するのが最も簡単です。
Homebrew on Macを介してノードと糸を入手するか、node.js v8.5以降をダウンロードしてnpm install -g yarnして糸を取得できます。
ドキュメントの会話( bin/convert )については、次のようにしてください。
MacOSではbrew install node tika unrtf parできます。
$ git clone [email protected]:statico/aspen.git
$ cd aspen
$ yarn install
上記の「Dockerを使用する」セクションの手順1〜4を参照してください。要するに、テキストファイルを1つの場所でまとめ、ElasticSearchをセットアップし、 bin/importコマンドでインポートします。
Aspenは、Next.jsを使用して構築されています。これは、ノード + ES6 + Express + React + Hot Reloading + Moreです。単純に実行:
$ yarn run dev
...そしてhttp:// localhost:3000にアクセスしてください
server.jsで作業していて、自動サーバーの再起動をしたい場合は、次のことを行います。
$ yarn global add nodemon
$ nodemon -w server.js -w lib -x yarn -- run dev
treeコマンド