Production-grade PHP project for indexing very large SQL Server datasets into Elasticsearch 7.17.13, with:
- Server-side batching via 
ROW_NUMBER()/OFFSET ... FETCH - Background workers to avoid Cloudflare 524/534 timeouts
 - Idempotent upserts using 
acckeyas_id - Dead-letter logging for malformed/missing IDs
 - JSON logging and clean normalization (dates/diacritics)
 
Author: Boško Radivojević — BRadivojevic
- Open in PhpStorm/VS Code → use Composer GUI to install.
 - Copy 
.env.example→.envand set ES + MSSQL. - Serve 
public/with your IDE. - POST JSON to 
queue-reindex.phpto enqueue; runworkers/reindex_worker.phpfrom IDE to process. 
- Put SQL in 
examples/select_batch_row_number.sql(uses?forstart,end). - Run 
workers/insert_bulk_worker.phpfrom IDE with Program arguments:index=your_index sql=examples/select_batch_row_number.sql start=1 end=10000 
© 2025 Boško Radivojević. MIT License.