Hibernate Search: full-text search for domain model
Java
Permalink
Failed to load latest commit information.
backends [Jenkins release job] Preparing next development iteration Nov 29, 2016
build-config [Jenkins release job] Preparing next development iteration Nov 29, 2016
distribution [Jenkins release job] Preparing next development iteration Nov 29, 2016
documentation [Jenkins release job] Preparing next development iteration Nov 29, 2016
elasticsearch HSEARCH-2223 Rename related test to AnalyzerBuilderTest Dec 2, 2016
engine HSEARCH-2223 Remove other references to Solr in scope of the analyzer… Dec 2, 2016
infinispan [Jenkins release job] Preparing next development iteration Nov 29, 2016
integrationtest [Jenkins release job] Preparing next development iteration Nov 29, 2016
legacy [Jenkins release job] Preparing next development iteration Nov 29, 2016
modules [Jenkins release job] Preparing next development iteration Nov 29, 2016
orm HSEARCH-2223 Move tests packages from 'solr' to 'definition' Dec 3, 2016
serialization/avro [Jenkins release job] Preparing next development iteration Nov 29, 2016
sharedtestresources [Jenkins release job] Preparing next development iteration Nov 29, 2016
testing [Jenkins release job] Preparing next development iteration Nov 29, 2016
travis HSEARCH-2148 Add Travis support Mar 4, 2016
.gitattributes HSEARCH-1325 Control line endings with an appropriate .gitattributes … May 13, 2013
.gitignore HSEARCH-2323 Properly ignore hibernate-noorm-release-scripts directory Aug 12, 2016
.travis.yml HSEARCH-2217 Move Travis build to Trusty infrastructure and use Maven… Apr 14, 2016
CONTRIBUTING.md HSEARCH-2299 Add a CONTRIBUTING.md file Jun 17, 2016
README.md [Jenkins release job] README.md updated by release build 5.6.0.Beta4 Nov 29, 2016
changelog.txt [Jenkins release job] changelog.txt updated by release build 5.6.0.Beta4 Nov 29, 2016
copyright.txt Update the record of copyright holders: copyright.txt Apr 16, 2015
lgpl.txt Move search trunk to the new structure Aug 15, 2007
pom.xml HSEARCH-2379 Upgrade to Hibernate ORM 5.1.3.Final Dec 2, 2016
settings-example.xml HSEARCH-2300 Use Central first to get the artifacts Jun 17, 2016

README.md

Hibernate Search

Version: 5.6.0.Beta4 - 29-11-2016

Description

Full text search for Java objects

This project provides synchronization between entities managed by Hibernate ORM and full-text indexing services like Apache Lucene and Elasticsearch.

It will automatically apply changes to indexes, which is tedious and error prone coding work, while leaving you full control on the query aspects. The development community constantly researches and refines the index writing techniques to improve performance.

Mapping your objects to the indexes is declarative, using a combination of Hibernate Search specific annotations and the knowledge it can gather from your existing Hibernate/JPA mapping.

Queries can be defined by any combination of:

  • "native" Apache Lucene queries
  • writing "native" Elasticsearch queries in Json format (if using Elasticsearch, which is optional)
  • using our DSL which abstracts the previous two generating optimal backend specific queries

Query results can include projections to be loaded directly from the index, or can materialize fully managed Hibernate entities loaded from the database within the current transactional scope.

Hibernate Search is using Apache Lucene under the cover; this can be used directly (running embedded in the same JVM) or remotely provided by Elasticsearch over its REST API.

Requirements

This version of Hibernate Search requires:

  • Hibernate ORM 5.0.x or 5.1.x
  • Apache Lucene 5.5.x

Instructions

Maven

Include the following to your dependency list:

<dependency>
   <groupId>org.hibernate</groupId>
   <artifactId>hibernate-search-orm</artifactId>
   <version>5.6.0.Beta4</version>
</dependency>

Sourceforge Bundle

Download the distribution bundle from SourceForge and unzip to installation directory. Then read the documentation available in docs/reference.

Building from source

> git clone git@github.com:hibernate/hibernate-search.git
> cd hibernate-search
> mvn clean install -s settings-example.xml

Build options (profiles and properties)

The documentation is based on AsciiDoctor. By default only the html output is enabled; to also generate the docbok output use:

> mvn clean install -Pdocbook -s settings-example.xml

To build the distribution bundle run:

> mvn clean install -Pdocbook,dist -s settings-example.xml

The Elasticsearch module tests against one single version of Elasticsearch at a time. You may redefine the version to use by specifying the right profile and using the testElasticsearchVersion property:

> mvn clean install -Pelasticsearch-2.0 -DtestElasticsearchVersion=2.1.0

The following profiles are available:

  • elasticsearch-2.0 for 2.0.x and 2.1.x
  • elasticsearch-2.2 for 2.2.x and later 2.x (the default)

A list of available versions for testElasticsearchVersion can be found on Maven Central.

Contributing

New contributors are always welcome. We collected some helpful hints on how to get started on our website at Contribute to Hibernate Search

Source code structure

The project is split in several Maven modules:

  • backends: Remote backends receiving an indexing job and executing it via different protocols.

  • build-config: Code related artefacts like checkstyle rules.

  • distribution: Builds the distribution package.

  • documentation: The project documentation.

  • elasticsearch: All code relating to the Elasticsearch integration.

  • engine: The engine of the project. Most of the beef is here.

  • integrationtest: Integration tests with various technologies like WildFly, Spring and Karaf. Also includes performance tests.

  • modules: Integration with WildFly using JBoss Modules.

  • orm: Native integration for Hibernate ORM, and also home of most public API code.

  • serialization: Serialization code used by remote backends.

  • testing: Various helper classes to write tests using Hibernate Search. This module is semi private.

Contact

Latest Documentation:

Bug Reports:

Free Technical Support:

License

This software and its documentation are distributed under the terms of the FSF Lesser GNU Public License (see lgpl.txt).