{"id":14981089,"url":"https://github.com/hibernate/hibernate-search","last_synced_at":"2026-05-11T10:03:23.662Z","repository":{"id":1118977,"uuid":"990281","full_name":"hibernate/hibernate-search","owner":"hibernate","description":"Hibernate Search: full-text search for domain model","archived":false,"fork":false,"pushed_at":"2026-05-05T12:03:51.000Z","size":117790,"stargazers_count":535,"open_issues_count":8,"forks_count":245,"subscribers_count":30,"default_branch":"main","last_synced_at":"2026-05-05T13:40:43.764Z","etag":null,"topics":["elasticsearch","hibernate","hibernate-search","java","lucene","opensearch","orm"],"latest_commit_sha":null,"homepage":"http://hibernate.org/search/","language":"Java","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/hibernate.png","metadata":{"files":{"readme":"README.md","changelog":"changelog.txt","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":"AUTHORS.txt","dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":"MAINTAINERS.md","copyright":null,"agents":null,"dco":"dco.txt","cla":null},"funding":{"github":"commonhaus","open_collective":"hibernate","custom":["https://opencollective.com/commonhaus-foundation"]}},"created_at":"2010-10-15T15:55:09.000Z","updated_at":"2026-05-05T11:56:48.000Z","dependencies_parsed_at":"2023-10-05T15:28:27.137Z","dependency_job_id":"ba12d8cf-bad2-45bb-9398-ae97d49452d9","html_url":"https://github.com/hibernate/hibernate-search","commit_stats":{"total_commits":15535,"total_committers":84,"mean_commits":184.9404761904762,"dds":0.5181847441261667,"last_synced_commit":"c5696efa4a4a3d468d0e15da40d17a6a4cd34d2c"},"previous_names":[],"tags_count":260,"template":false,"template_full_name":null,"purl":"pkg:github/hibernate/hibernate-search","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hibernate%2Fhibernate-search","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hibernate%2Fhibernate-search/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hibernate%2Fhibernate-search/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hibernate%2Fhibernate-search/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hibernate","download_url":"https://codeload.github.com/hibernate/hibernate-search/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hibernate%2Fhibernate-search/sbom","scorecard":{"id":464005,"data":{"date":"2025-08-11","repo":{"name":"github.com/hibernate/hibernate-search","commit":"23c1348531cbcf00505648be3730471e34fc7015"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":6,"checks":[{"name":"Maintained","score":10,"reason":"30 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 10","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Code-Review","score":0,"reason":"Found 1/21 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/ci-report.yml:1","Warn: no topLevel permission defined: .github/workflows/ci.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE.txt:0","Info: FSF or OSI recognized license: Apache License 2.0: LICENSE.txt:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Branch-Protection","score":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"Binary-Artifacts","score":9,"reason":"binaries present in source code","details":["Warn: binary detected: .mvn/wrapper/maven-wrapper.jar:1"],"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Security-Policy","score":10,"reason":"security policy file detected","details":["Info: security policy file detected: github.com/hibernate/.github/SECURITY.md:1","Info: Found linked content: github.com/hibernate/.github/SECURITY.md:1","Info: Found disclosure, vulnerability, and/or timelines in security policy: github.com/hibernate/.github/SECURITY.md:1","Info: Found text in security policy: github.com/hibernate/.github/SECURITY.md:1"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"Pinned-Dependencies","score":4,"reason":"dependency not pinned by hash detected -- score normalized to 4","details":["Info: Possibly incomplete results: error parsing shell code: invalid parameter name: .github/workflows/ci.yml:131","Warn: containerImage not pinned by hash: build/container/database/cockroachdb.Dockerfile:3: pin your Docker image by updating docker.io/cockroachdb/cockroach:v25.2.3 to docker.io/cockroachdb/cockroach:v25.2.3@sha256:4a412731d1cfc5d6dea7431b7ce383b502966c9d589163d63db9e1ff7b51495a","Warn: containerImage not pinned by hash: build/container/database/db2.Dockerfile:3: pin your Docker image by updating icr.io/db2_community/db2:12.1.2.0 to icr.io/db2_community/db2:12.1.2.0@sha256:9cc0d21df5d86cd9a5ce1c65c390dc10d56b1d38ab6e992c8a08eda677368781","Warn: containerImage not pinned by hash: build/container/database/mariadb.Dockerfile:3: pin your Docker image by updating docker.io/mariadb:11.8.2 to docker.io/mariadb:11.8.2@sha256:2bcbaec92bd9d4f6591bc8103d3a8e6d0512ee2235506e47a2e129d190444405","Warn: containerImage not pinned by hash: build/container/database/mssql.Dockerfile:3: pin your Docker image by updating mcr.microsoft.com/mssql/server:2022-CU12-ubuntu-22.04 to mcr.microsoft.com/mssql/server:2022-CU12-ubuntu-22.04@sha256:b94071acd4612bfe60a73e265097c2b6388d14d9d493db8f37cf4479a4337480","Warn: containerImage not pinned by hash: build/container/database/mysql.Dockerfile:3: pin your Docker image by updating docker.io/mysql:9.4.0 to docker.io/mysql:9.4.0@sha256:a776e89aad2d425c248ccfb840115aaa52883499ff36512db4d503b11aae455a","Warn: containerImage not pinned by hash: build/container/database/oracle.Dockerfile:3: pin your Docker image by updating docker.io/gvenzl/oracle-free:23.8-slim-faststart to docker.io/gvenzl/oracle-free:23.8-slim-faststart@sha256:df1a579ec517f63a44da3f9d9e7901b8c4ac661dc2977ba7e73147fb82da20e5","Warn: containerImage not pinned by hash: build/container/database/postgresql.Dockerfile:3: pin your Docker image by updating docker.io/postgres:17.5 to docker.io/postgres:17.5@sha256:aadf2c0696f5ef357aa7a68da995137f0cf17bad0bf6e1f17de06ae5c769b302","Warn: containerImage not pinned by hash: build/container/ryuk.Dockerfile:7: pin your Docker image by updating docker.io/testcontainers/ryuk:0.12.0 to docker.io/testcontainers/ryuk:0.12.0@sha256:dd3f023a6ed7015b3f95a49ccd65a2daf0c56e681422c12952b19a810dfa6298","Warn: containerImage not pinned by hash: build/container/search-backend/amazon-opensearch-serverless.Dockerfile:7: pin your Docker image by updating docker.io/opensearchproject/opensearch:3.1.0 to docker.io/opensearchproject/opensearch:3.1.0@sha256:2ddce3f8e2e00644f122cedeeb8b2e93d8a2dc587d3a1338bfe868ec56848afe","Warn: containerImage not pinned by hash: build/container/search-backend/elastic.Dockerfile:8: pin your Docker image by updating docker.io/elastic/elasticsearch:9.1.2 to docker.io/elastic/elasticsearch:9.1.2@sha256:d1a8016cf55be8ffec635ed69f5a9acb0c459db35b46a4549ec5b2847a2f170a","Warn: containerImage not pinned by hash: build/container/search-backend/opensearch.Dockerfile:7: pin your Docker image by updating docker.io/opensearchproject/opensearch:3.1.0 to docker.io/opensearchproject/opensearch:3.1.0@sha256:2ddce3f8e2e00644f122cedeeb8b2e93d8a2dc587d3a1338bfe868ec56848afe","Info:   9 out of   9 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of  11 containerImage dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"SAST","score":6,"reason":"SAST tool is not run on all commits -- score normalized to 6","details":["Warn: 14 commits out of 21 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}},{"name":"Vulnerabilities","score":9,"reason":"1 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: GHSA-j288-q9x7-2f5v"],"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}}]},"last_synced_at":"2025-08-19T11:57:12.304Z","repository_id":1118977,"created_at":"2025-08-19T11:57:12.305Z","updated_at":"2025-08-19T11:57:12.305Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32889972,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-10T13:40:02.631Z","status":"online","status_checked_at":"2026-05-11T02:00:05.975Z","response_time":120,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["elasticsearch","hibernate","hibernate-search","java","lucene","opensearch","orm"],"created_at":"2024-09-24T14:02:54.241Z","updated_at":"2026-05-11T10:03:23.641Z","avatar_url":"https://github.com/hibernate.png","language":"Java","funding_links":["https://github.com/sponsors/commonhaus","https://opencollective.com/hibernate","https://opencollective.com/commonhaus-foundation"],"categories":["数据库","Java"],"sub_categories":[],"readme":"# Hibernate Search\n\n[![Maven Central](https://img.shields.io/maven-central/v/org.hibernate.search/hibernate-search-mapper-orm.svg?label=Maven%20Central\u0026style=for-the-badge)](https://central.sonatype.com/search?namespace=org.hibernate.search\u0026sort=name)\n[![Build Status](https://img.shields.io/jenkins/build?jobUrl=https%3A%2F%2Fci.hibernate.org%2Fjob%2Fhibernate-search%2Fjob%2Fmain%2F\u0026style=for-the-badge)](https://ci.hibernate.org/job/hibernate-search/job/main)\n[![Sonar Coverage](https://img.shields.io/sonar/coverage/org.hibernate.search:hibernate-search-parent?server=https%3A%2F%2Fsonarcloud.io\u0026style=for-the-badge)](https://sonarcloud.io/project/activity?id=org.hibernate.search%3Ahibernate-search-parent\u0026graph=coverage)\n[![Quality gate](https://img.shields.io/sonar/alert_status/org.hibernate.search:hibernate-search-parent?logo=sonarcloud\u0026server=https%3A%2F%2Fsonarcloud.io\u0026style=for-the-badge)](https://sonarcloud.io/dashboard?id=org.hibernate.search%3Ahibernate-search-parent)\n[![Develocity](https://img.shields.io/badge/Revved%20up%20by-Develocity-06A0CE?style=for-the-badge\u0026logo=gradle)](https://develocity.commonhaus.dev/scans?search.rootProjectNames=Hibernate%20Search)\n[![Reproducible Builds](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/jvm-repo-rebuild/reproducible-central/master/content/org/hibernate/search/hibernate-search-bom/badge.json\u0026style=for-the-badge)](https://github.com/jvm-repo-rebuild/reproducible-central/blob/master/content/org/hibernate/search/hibernate-search-bom/README.md)\n\n## Description\n\nHibernate Search automatically extracts data from Hibernate ORM entities to push it to\nlocal [Apache Lucene](http://lucene.apache.org/) indexes\nor remote [Elasticsearch](https://www.elastic.co/products/elasticsearch)/[OpenSearch](https://www.opensearch.org/) indexes.\n\nIt features:\n\n* [**Declarative mapping**](https://docs.hibernate.org/stable/search/reference/en-US/html_single/#mapper-orm-mapping)\nof entity properties to index fields,\neither through annotations or a programmatic API.\n* [**On-demand mass indexing**](https://docs.hibernate.org/stable/search/reference/en-US/html_single/#mapper-orm-indexing-massindexer)\nof all entities in the database,\nto initialize the indexes with pre-existing data.\n* [**On-the-fly listener-triggered indexing**](https://docs.hibernate.org/stable/search/reference/en-US/html_single/#listener-triggered-indexing)\nof entities modified through a Hibernate ORM session,\nto always keep the indexes up-to-date.\n* [**A Search DSL**](https://docs.hibernate.org/stable/search/reference/en-US/html_single/#search-dsl)\nto easily build full-text search queries\nand retrieve the hits as Hibernate ORM entities.\n* And more: [configuration of analyzers](https://docs.hibernate.org/stable/search/reference/en-US/html_single/#concepts-analysis),\nmany different [predicates](https://docs.hibernate.org/stable/search/reference/en-US/html_single/#search-dsl-predicate)\nand [sorts](https://docs.hibernate.org/stable/search/reference/en-US/html_single/#search-dsl-sort)\nin the Search DSL,\n[spatial support](https://docs.hibernate.org/stable/search/reference/en-US/html_single/#mapper-orm-geopoint).\nsearch queries returning [projections](https://docs.hibernate.org/stable/search/reference/en-US/html_single/#search-dsl-projection)\ninstead of entities,\n[aggregations](https://docs.hibernate.org/stable/search/reference/en-US/html_single/#search-dsl-aggregation),\nadvanced customization of the mapping using [bridges](https://docs.hibernate.org/stable/search/reference/en-US/html_single/#mapper-orm-bridge),\n...\n\nFor example, map your entities like this:\n\n```java\n@Entity\n// This entity is mapped to an index\n@Indexed\npublic class Book {\n\n    // The entity ID is the document ID\n    @Id\n    @GeneratedValue\n    private Integer id;\n\n    // This property is mapped to a document field\n    @FullTextField\n    private String title;\n\n    @ManyToMany\n    // Authors will be embedded in Book documents\n    @IndexedEmbedded\n    private Set\u003cAuthor\u003e authors = new HashSet\u003c\u003e();\n\n    // Getters and setters\n    // ...\n}\n\n@Entity\npublic class Author {\n\n    @Id\n    @GeneratedValue\n    private Integer id;\n\n    // This property is mapped to a document field\n    @FullTextField\n    private String name;\n\n    @ManyToMany(mappedBy = \"authors\")\n    private Set\u003cBook\u003e books = new HashSet\u003c\u003e();\n\n    // Getters and setters\n    // ...\n}\n```\n\nIndex existing data like this:\n\n```java\nSearchSession searchSession = Search.session( entityManager );\nMassIndexer indexer = searchSession.massIndexer( Book.class );\nindexer.startAndWait();\n```\n\nListener-triggered indexing does not require any change to code based on JPA or Hibernate ORM:\n\n```java\nAuthor author = new Author();\nauthor.setName( \"Isaac Asimov\" );\n\nBook book = new Book();\nbook.setTitle( \"The Caves Of Steel\" );\nbook.getAuthors().add( author );\nauthor.getBooks().add( book );\n\nentityManager.persist( author );\nentityManager.persist( book );\n```\n\nAnd search like this:\n\n```java\nSearchResult\u003cBook\u003e result = Search.session( entityManager )\n        .search( Book.class )\n        .where( f -\u003e f.match()\n                .fields( \"title\", \"authors.name\" )\n                .matching( \"Isaac\" ) )\n        .fetch( 20 );\n\nList\u003cBook\u003e hits = result.hits();\nlong totalHitCount = result.total().hitCount();\n```\n\n## License\n\nThis software and its documentation are distributed under the terms of\nthe [Apache License version 2.0 (Apache-2.0)](https://www.apache.org/licenses/LICENSE-2.0.txt).\n\nThe Apache-2.0 license text is included verbatim in the [`LICENSE.txt`](LICENSE.txt) file\nin the root directory of the repository.\n\nNote that Hibernate Search 7.2.0.Alpha1 and lower are distributed under a different license;\nfor more information, check the licensing information provided alongside published binaries,\nor the [corresponding branch in the source repository](https://github.com/hibernate/hibernate-search/tree/7.1#license).\n\n## Getting started\n\nGetting started guides are available\n[here](https://hibernate.org/search/documentation/getting-started/).\n\nFore more information, refer to the Hibernate Search website:\n\n* [Available versions and compatibility matrix](https://hibernate.org/search/releases/)\n* [Reference documentation for all versions (current and past)](https://hibernate.org/search/documentation/)\n\n## Contact\n\n### Latest Documentation\n\nSee \u003chttps://hibernate.org/search/documentation/\u003e.\n\n### Bug Reports\n\nSee the HSEARCH project on the Hibernate JIRA instance: \u003chttps://hibernate.atlassian.net/browse/HSEARCH\u003e.\n\n### Community Support\n\nSee \u003chttps://hibernate.org/community/\u003e.\n\n## Contributing\n\nNew contributors are always welcome.\n\nSee [CONTRIBUTING.md](CONTRIBUTING.md) to get started.\n\nThe contribution guide also includes build instructions. \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhibernate%2Fhibernate-search","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhibernate%2Fhibernate-search","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhibernate%2Fhibernate-search/lists"}