{"adoption": {"forks": 797, "observed_at": "2026-08-28T04:07:42.033161+00:00", "stars": 3084}, "canonical_url": "https://ross.abutalabs.com/products/elasticsearch-rails", "card": {"archived": false, "artifact_type": "library", "description": "Elasticsearch integrations for ActiveModel/Record and Ruby on Rails", "domain": ["web-development", "databases", "backend"], "enriched": true, "function": ["search-engine", "orm", "database-driver"], "health_score": 62, "homepage": null, "language": "Ruby", "license": "Apache-2.0", "license_family": "permissive", "maturity": "active", "member_repos": ["elastic/elasticsearch-rails"], "name": "elastic/elasticsearch-rails", "platform": ["ruby", "jvm"], "pushed_at": "2025-10-08T13:42:09+00:00", "repo": "elastic/elasticsearch-rails", "stars": 3084, "tags": ["elasticsearch", "rails", "activerecord", "activemodel", "ruby-gem", "full-text-search", "search"], "topics": ["ruby", "rails", "ruby-on-rails", "elasticsearch", "elastic", "activerecord", "activemodel"], "urls": [], "use_cases": ["add full-text search to Rails ActiveRecord models with Elasticsearch", "index and sync ActiveRecord records into Elasticsearch", "search results returned as ActiveRecord relations with pagination", "persist plain Ruby objects in Elasticsearch via repository pattern", "rake tasks to bulk import model data into Elasticsearch", "integrate Elasticsearch with Mongoid models"], "what_it_is": "Official Elasticsearch integrations for Ruby on Rails, provided as three gems: elasticsearch-model (ActiveModel/ActiveRecord/Mongoid search integration), elasticsearch-persistence (repository pattern persistence), and elasticsearch-rails (Rails conveniences like rake import tasks and instrumentation). It lets Rails models be indexed into and searched via Elasticsearch 8.x.", "when_to_avoid": ["your project is not Ruby/Rails", "you use OpenSearch or a non-Elasticsearch search engine", "you only need a raw Elasticsearch client without model integration (use elasticsearch-ruby instead)"], "when_to_choose": ["you have a Ruby on Rails or Ruby app using ActiveRecord or Mongoid and want Elasticsearch-backed search", "you want model callbacks, mappings, and import tasks wired up automatically", "you want search results as enumerable records with Kaminari/WillPaginate pagination"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/elasticsearch-rails", "repo": "elastic/elasticsearch-rails", "role": "main", "score": 45}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:07:42.033161+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T07:27:40.930408+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f58ce02c378335b1ce6e6337f1cb470689db934da74c6f8823778fa5cddfb11d", "fetched_at": "2026-08-28T04:07:42.033161+00:00", "kind": "readme", "missing": false, "url": "https://github.com/elastic/elasticsearch-rails"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:07:42.033161+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T07:27:40.930408+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f58ce02c378335b1ce6e6337f1cb470689db934da74c6f8823778fa5cddfb11d", "fetched_at": "2026-08-28T04:07:42.033161+00:00", "kind": "readme", "missing": false, "url": "https://github.com/elastic/elasticsearch-rails"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T07:27:40.930408+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f58ce02c378335b1ce6e6337f1cb470689db934da74c6f8823778fa5cddfb11d", "fetched_at": "2026-08-28T04:07:42.033161+00:00", "kind": "readme", "missing": false, "url": "https://github.com/elastic/elasticsearch-rails"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:07:42.033161+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:07:42.033161+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:07:42.033161+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T07:27:40.930408+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f58ce02c378335b1ce6e6337f1cb470689db934da74c6f8823778fa5cddfb11d", "fetched_at": "2026-08-28T04:07:42.033161+00:00", "kind": "readme", "missing": false, "url": "https://github.com/elastic/elasticsearch-rails"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:07:42.033161+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:07:42.033161+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T07:27:40.930408+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f58ce02c378335b1ce6e6337f1cb470689db934da74c6f8823778fa5cddfb11d", "fetched_at": "2026-08-28T04:07:42.033161+00:00", "kind": "readme", "missing": false, "url": "https://github.com/elastic/elasticsearch-rails"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:07:42.033161+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:07:42.033161+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:07:42.033161+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T07:27:40.930408+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f58ce02c378335b1ce6e6337f1cb470689db934da74c6f8823778fa5cddfb11d", "fetched_at": "2026-08-28T04:07:42.033161+00:00", "kind": "readme", "missing": false, "url": "https://github.com/elastic/elasticsearch-rails"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:07:42.033161+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:07:42.033161+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T07:27:40.930408+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f58ce02c378335b1ce6e6337f1cb470689db934da74c6f8823778fa5cddfb11d", "fetched_at": "2026-08-28T04:07:42.033161+00:00", "kind": "readme", "missing": false, "url": "https://github.com/elastic/elasticsearch-rails"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T07:27:40.930408+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f58ce02c378335b1ce6e6337f1cb470689db934da74c6f8823778fa5cddfb11d", "fetched_at": "2026-08-28T04:07:42.033161+00:00", "kind": "readme", "missing": false, "url": "https://github.com/elastic/elasticsearch-rails"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T07:27:40.930408+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f58ce02c378335b1ce6e6337f1cb470689db934da74c6f8823778fa5cddfb11d", "fetched_at": "2026-08-28T04:07:42.033161+00:00", "kind": "readme", "missing": false, "url": "https://github.com/elastic/elasticsearch-rails"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T07:27:40.930408+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f58ce02c378335b1ce6e6337f1cb470689db934da74c6f8823778fa5cddfb11d", "fetched_at": "2026-08-28T04:07:42.033161+00:00", "kind": "readme", "missing": false, "url": "https://github.com/elastic/elasticsearch-rails"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 46, "longevity": 100, "rhythm": 13}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 4681, "days_push": 329, "days_rel": 366, "gap_med": null, "n_releases_24m": 1}, "score": 45, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}