Full-text search for entities
Offers full-text search support for objects stored by Hibernate ORM, Infinispan and other sources. Think of it as Google(tm) for your entities:
-
search words with text
-
order results by relevance
-
find by approximation (fuzzy search)
Under the hood it will use Apache Lucene directly or over Elasticsearch.
Full control
Unlike with web search, this is your data, your domain, your application, stored wherever you decide.
You also have far better control on how your data is processed, and how to extract what you need.
Hibernate Search exposes all capabilities of the powerful analysis framework from Apache Lucene, so you can:
-
tune text processing for specific languages
-
for domain specific terminology (e.g. medical terms, custom acronyms expansion,..)
-
control the ranking process: which results are more important
-
advanced index encoding for analytics and signals
Additionally it allows to:
-
partition data, apply multi-tenancy for security and performance optimisations
-
perform declarative filtering, to control data access security via aspect based programming
Scalable, Fault Tolerant, Cloud Native
You’ll find that performance of a "single box" is exceptional, still it can be distributed.
Maintaining an high performance, scalable distributed index is not simple. Hibernate Search offers several architectural solutions:
-
Integration with Elasticsearch
-
Store the Apache Lucene index in an Infinispan distributed data grid
-
Simple filesystem based replication
-
Replicate changes across nodes using JMS, JGroups, or plug your own service
-
Update indexes within a JTA transaction, or as a post-transaction listener
These building blocks can be combined in various ways.