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命令