Aspen讓您可以通過瀏覽器搜索純文本文件的大型語料庫。
將所有文件放在一個地方,例如~/ebooks/ :
$ 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標題之一。嘗試在文本文件上運行dos2unix進行修復。
轉到http:// localhost:3000/,開始搜索!
通過Docker使用Elasticsearch是最簡單的。
您可以通過Mac上的Homebrew獲得節點和紗線,也可以下載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。簡而言之,將您的文本文件放在一個地方,設置Elasticsearch,並使用bin/import命令導入它們。
Aspen是使用Next.js構建的,即節點 + ES6 + ES6 + Express + React + Hot Reloading +更多。只需運行:
$ yarn run dev
...然後轉到http:// localhost:3000
如果您要在server.js上工作並想要自動服務器重新啟動,請執行:
$ yarn global add nodemon
$ nodemon -w server.js -w lib -x yarn -- run dev
tree命令