Practical overview
When it fits
Use it when you want a Python and notebook-based starting point for indexing a custom text dataset in Elasticsearch and comparing lexical and semantic queries.
Who it is for
- Developers building search over their own text datasets in Elasticsearch.
- Practitioners comparing keyword matching with embedding-based semantic search.
- Users who want a notebook-based example of chunked CSV ingestion into Elasticsearch.
Documented uses
- Define an Elasticsearch index with text fields and dense-vector fields.
- Process large CSV files in chunks and add embeddings to an index.
- Search indexed text using keyword matching or dense-vector semantics.
Requirements & limits
The repository is public and lists an Apache-2.0 license.
- The project is a library and notebook workflow, not a hosted search service; the documented setup uses a separately started Elasticsearch server.
- Semantic search depends on using the same embedding function for indexing and querying.
- The README describes a Python 3.7 Conda environment and installation from the repository’s requirements file.
- The project estimates about three hours to index one million articles on four CPU cores.
Check current requirements in the official documentation. Source-based guidance does not mean OpenViST has run or independently tested this project.
Create an index and ingest CSV data with embeddings
Use the library’s documented utilities to define an Elasticsearch index and send chunked CSV records with embeddings to it.
Before you start
- A running Elasticsearch service
- The installed project dependencies
- A CSV dataset
- An embedding utility for the selected text field
Steps
Initialize ElasticTransformers with the Elasticsearch URL and, optionally, an index name.
Define the text-search fields, dense-vector field and vector dimension with create_index_spec.
Call create_index to create the configured index.
Call write_large_csv with the CSV path, chunk size, embedding utility and field to embed.
Expected outcome
The documented workflow creates an Elasticsearch index and feeds it chunked CSV records with embeddings.
Guide limitations
- The embedding utility and its configuration must be supplied for the dataset.
- The README’s example later requires the same embedding function for semantic search.
Sources & review
Source record details
- Source availability
- Active
- Sources checked
- 18 October 2026
- Original website title
- md-experiments/elastic_transformers · Official homepage title · retained in its source language

