search-ingest
Version, currently 2.11.194 versions
- 2.11.1latestMar 22, 2024
- 2.11.0not indexedAug 13, 2026
- 2.10.4not indexedAug 13, 2026
- 2.10.3not indexedAug 13, 2026
- 2.10.2not indexedAug 13, 2026
- 2.10.1not indexedAug 13, 2026
- 2.10.0not indexedAug 13, 2026
- 2.9.4not indexedAug 13, 2026
- 2.9.3not indexedAug 13, 2026
- 2.9.2not indexedAug 13, 2026
- 2.9.1not indexedAug 13, 2026
- 2.9.0not indexedAug 13, 2026
- 2.8.0not indexedAug 13, 2026
- 2.7.0not indexedAug 13, 2026
- 2.6.0not indexedAug 13, 2026
- 2.5.2not indexedAug 13, 2026
- 2.5.1not indexedAug 13, 2026
- 2.5.0not indexedAug 13, 2026
- 2.4.1not indexedAug 13, 2026
- 2.4.0not indexedAug 13, 2026
- 2.3.4not indexedAug 13, 2026
- 2.3.3not indexedAug 13, 2026
- 2.3.2not indexedAug 13, 2026
- 2.3.1not indexedAug 13, 2026
- 2.3.0not indexedAug 13, 2026
- 2.2.0not indexedAug 13, 2026
- 2.1.6not indexedAug 13, 2026
- 2.1.5not indexedAug 13, 2026
- 2.1.4not indexedAug 13, 2026
- 2.1.3not indexedAug 13, 2026
- 2.1.2not indexedAug 13, 2026
- 2.1.1not indexedAug 13, 2026
- 2.1.0not indexedAug 13, 2026
- 2.0.3not indexedAug 13, 2026
- 2.0.2not indexedAug 13, 2026
- 2.0.1not indexedAug 13, 2026
- 2.0.0not indexedAug 13, 2026
- 1.22.0not indexedAug 13, 2026
- 1.21.0not indexedAug 13, 2026
- 1.20.0not indexedAug 13, 2026
- 1.19.10not indexedAug 13, 2026
- 1.19.9not indexedAug 13, 2026
- 1.19.7not indexedAug 13, 2026
- 1.19.6not indexedAug 13, 2026
- 1.19.5not indexedAug 13, 2026
- 1.19.4not indexedAug 13, 2026
- 1.19.3not indexedAug 13, 2026
- 1.19.2not indexedAug 13, 2026
- 1.19.1not indexedAug 13, 2026
- 1.19.0not indexedAug 13, 2026
- 1.18.0not indexedAug 13, 2026
- 1.17.1not indexedAug 13, 2026
- 1.17.0not indexedAug 13, 2026
- 1.16.0not indexedAug 13, 2026
- 1.15.4not indexedAug 13, 2026
- 1.15.1not indexedAug 13, 2026
- 1.15.0not indexedAug 13, 2026
- 1.14.4not indexedAug 13, 2026
- 1.14.3not indexedAug 13, 2026
- 1.14.2not indexedAug 13, 2026
- 1.14.1not indexedAug 13, 2026
- 1.14.0not indexedAug 13, 2026
- 1.13.0not indexedAug 13, 2026
- 1.12.3not indexedAug 13, 2026
- 1.12.2not indexedAug 13, 2026
- 1.12.1not indexedAug 13, 2026
- 1.12.0not indexedAug 13, 2026
- 1.11.1not indexedAug 13, 2026
- 1.11.0not indexedAug 13, 2026
- 1.10.5not indexedAug 13, 2026
- 1.10.4not indexedAug 13, 2026
- 1.10.3not indexedAug 13, 2026
- 1.10.2not indexedAug 13, 2026
- 1.10.1not indexedAug 13, 2026
- 1.10.0not indexedAug 13, 2026
- 1.9.0not indexedAug 13, 2026
- 1.8.2not indexedAug 13, 2026
- 1.8.1not indexedAug 13, 2026
- 1.8.0not indexedAug 13, 2026
- 1.7.4not indexedAug 13, 2026
- 1.7.3not indexedAug 13, 2026
- 1.7.2not indexedAug 13, 2026
- 1.7.1not indexedAug 13, 2026
- 1.7.0not indexedAug 13, 2026
- 1.6.3not indexedAug 13, 2026
- 1.6.2not indexedAug 13, 2026
- 1.6.1not indexedAug 13, 2026
- 1.6.0not indexedAug 13, 2026
- 1.5.5not indexedAug 13, 2026
- 1.5.4not indexedAug 13, 2026
- 1.5.3not indexedAug 13, 2026
- 1.5.2not indexedAug 13, 2026
- 1.5.1not indexedAug 13, 2026
- 1.5.0not indexedAug 13, 2026
github.com/PlaceOS/search-ingest
Search indexing service, mirroring documents in RethinkDB to Elasticsearch
Installation
# Add this to your shard.yml
dependencies:
search-ingest:
github: PlaceOS/search-ingest
version: ~> 2.11.1Then run:
shards installshard.yml
- Crystal
>= 1.0.0- License
- MIT
- Author
- Caspian Baska
- Target
search-ingestfrom src/app.cr
Dependencies
Runtime Dependencies
- pg-orm*github: spider-gazelle/pg-orm
- habitat~> 0.4github: luckyframework/habitat
- promise*github: spider-gazelle/promise
- retriable*github: Sija/retriable.cr
- log_helper*github: spider-gazelle/log_helper
- secrets-env~> 1.3github: place-labs/secrets-env
- placeos-models*github: placeos/models
- placeos-resource*github: place-labs/resource
- action-controller*github: spider-gazelle/action-controller
- placeos-log-backend>= 0.11.0github: place-labs/log-backend
Development Dependencies
- ameba*github: crystal-ameba/amebadev
- crystal-kcov*github: Vici37/crystal-kcov, branch: masterdev
README
PostgreSQL Elasticsearch Ingest Service
A small (one might even say 'micro') service that hooks into pg-orm models and generates elasticsearch indices.
search-ingest exposes a REST API to reindex/backfill specific models.
Usage
- Set the tables to be mirrored in ES through setting
SearchIngest::MANAGED_TABLESwith an array of(T < PgORM::Base).class - Configure Elastic client through
ELASTIC_HOSTandELASTIC_PORTenv vars, or through switches on the command line - Configure PostgreSQL connection
PG_DATABASE_URLenv var
POST /api/v1/reindex[?backfill=true]
Deletes indexes and recreates index mappings. Backfills the indices by default (toggle with backfill boolean).
POST /api/v1/backfill
Backfills all indexes with data from PostgreSQL.
GET /api/v1/healthz
Healthcheck.
Index Schema
- Each PostgreSQL table receives an ES index, with a mapping generated from the attributes of a PgORM model.
- PgORM attributes can accept a tag
es_typeto specify the correct field datatype for the index schema. belongs_toassociations are modeled with ESjoindatatypes, associated documents are replicated in their parent's index. This is necessary forhas_parentandhas_childqueries.
PostgreSQL Mirroring
SearchIngest::TableManager hooks into the changefeed of a table, resolves associations of the model and creates/updates documents in the appropriate ES indices.
Configuration
ENV: A value ofproductionlowers log verbosityES_HOST: Elasticsearch hostES_PORT: Elasticsearch portES_TLS: Use Elasticsearch https, default isfalseES_URI: Elasticsearch uri, detects whether to use TLS off schemaES_DISABLE_BULK: Use single requests to Elasticsearch instead of the bulk API. Defaults tofalseES_CONN_POOL_TIMEOUT: Timeout when checking a connection out of the Elasticsearch connection poolES_CONN_POOL: Size of the Elasticsearch connection poolES_IDLE_POOL: Maximum number of idle connections in the Elasticsearch connection poolUDP_LOG_HOST: Host for sending JSON formatted logs toUDP_LOG_PORT: Port that UDP input service is listening onPG_DATABASE: DB to mirror to Elasticsearch, defaults to"test"PG_HOST: Host of PostgreSQL, defaults tolocalhostPG_PORT: Port of PostgreSQL, defaults to5432PG_USER: PostgreSQL database user, defaults topostgresPG_PWD: PostgreSQL database password, defaults to""PLACE_SEARCH_INGEST_HOST: Host to bind server toPLACE_SEARCH_INGEST_PORT: Port for server to listen on
Contributing
See CONTRIBUTING.md.
Contributors
- Caspian Baska - creator and maintainer
Documentation
Built from the current release. The first visit to a release nobody has asked for starts its build.
Links
This release
- Version
2.11.1- Tagged
- Mar 22, 2024
- Commit
1b62bceea678- Crystal
>= 1.0.0- Indexed
- yes
Dependents
No indexed shard depends on this one yet.
Repository
github.com/PlaceOS/search-ingest
Metadata
- Created
- Aug 12, 2026
- Updated
- Aug 15, 2026
- Synced
- Aug 15, 2026
- Versions
- 94