https://github.com/timbmg/acl-search
A search-as-you-type web app for the ACL Anthology.
https://github.com/timbmg/acl-search
elasticsearch search search-as-you-type search-engine
Last synced: 7 months ago
JSON representation
A search-as-you-type web app for the ACL Anthology.
- Host: GitHub
- URL: https://github.com/timbmg/acl-search
- Owner: timbmg
- License: mit
- Created: 2022-08-13T20:40:19.000Z (about 3 years ago)
- Default Branch: master
- Last Pushed: 2022-11-26T12:57:01.000Z (almost 3 years ago)
- Last Synced: 2025-01-14T02:46:27.385Z (9 months ago)
- Topics: elasticsearch, search, search-as-you-type, search-engine
- Language: Vue
- Homepage: https://aclsear.ch
- Size: 2.11 MB
- Stars: 3
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
## Architecture
The search engine relies on [Elasticsearch](https://www.elastic.co/), specifically its [search-as-you-type](https://www.elastic.co/guide/en/elasticsearch/reference/current/search-as-you-type.html) feature. Instead of only indexing full words, it creates n-grams of the text for faster retrieval.The app is built based on the principles outlined in the [12 factor app](https://12factor.net/).
### Core Services
#### Search
The search service provides an API to search through the publication index in Elasticsearch. Currently, we search only for matches the title. Future updates will include search through available abstracts and for all pubications of a specific author.
#### Index
The index service checks for new files in the [ACL Anthology github](https://github.com/acl-org/acl-anthology/tree/master/data/xml) on a regular basis. If a file update is discovered, publications are imported into an Elasticsearch index. The schedule is implemented in the `index-beat` service using [celery beat](https://docs.celeryq.dev/en/stable/userguide/periodic-tasks.html#periodic-tasks). The `index-worker` service processes and indexes the files that have been updated.## Preview
![]()