Compass Project
Encyclopedia
Compass is a free
/open source Java
Search
Engine Framework built on top of Lucene
created by Shay Banon.
Compass provides a simple API for working with Lucene
(similar to API provided by ORM
libraries). It has built in support for mapping different data "formats" into the search engine such as OSEM - Object to Search Engine Mapping (using annotations or xml), XSEM - XML to Search Engine Mapping (using simple xpath expressions), JSEM - JSON
to Search Engine Mapping and the low level RSEM - Resource to Search Engine Mapping.
Compass integrates with ORM
frameworks allowing for a single API to index all the content mapped by both the ORM and Compass. It also allows to automatically mirror changes done through the ORM API into the Search Engine. Compass has generic support for JPA
and embedded support for Hibernate
, OpenJPA, TopLink
, and EclipseLink
.
Distributed Lucene index (both pure Lucene
and using Compass) support by allowing to store the Lucene index within Data Grid products such as GigaSpaces, Oracle Coherence Data Grid, and Terracotta
. There is also support for distributed and collocated indexing and searching.
Compass provides extensive integration with Spring Framework including transaction management, Spring MVC, and Spring aspects for reflecting operations to the search engine.
Free software
Free software, software libre or libre software is software that can be used, studied, and modified without restriction, and which can be copied and redistributed in modified or unmodified form either without restriction, or with restrictions that only ensure that further recipients can also do...
/open source Java
Java (programming language)
Java is a programming language originally developed by James Gosling at Sun Microsystems and released in 1995 as a core component of Sun Microsystems' Java platform. The language derives much of its syntax from C and C++ but has a simpler object model and fewer low-level facilities...
Search
Search algorithm
In computer science, a search algorithm is an algorithm for finding an item with specified properties among a collection of items. The items may be stored individually as records in a database; or may be elements of a search space defined by a mathematical formula or procedure, such as the roots...
Engine Framework built on top of Lucene
Lucene
Apache Lucene is a free/open source information retrieval software library, originally created in Java by Doug Cutting. It is supported by the Apache Software Foundation and is released under the Apache Software License....
created by Shay Banon.
Compass provides a simple API for working with Lucene
Lucene
Apache Lucene is a free/open source information retrieval software library, originally created in Java by Doug Cutting. It is supported by the Apache Software Foundation and is released under the Apache Software License....
(similar to API provided by ORM
Object-relational mapping
Object-relational mapping in computer software is a programming technique for converting data between incompatible type systems in object-oriented programming languages. This creates, in effect, a "virtual object database" that can be used from within the programming language...
libraries). It has built in support for mapping different data "formats" into the search engine such as OSEM - Object to Search Engine Mapping (using annotations or xml), XSEM - XML to Search Engine Mapping (using simple xpath expressions), JSEM - JSON
JSON
JSON , or JavaScript Object Notation, is a lightweight text-based open standard designed for human-readable data interchange. It is derived from the JavaScript scripting language for representing simple data structures and associative arrays, called objects...
to Search Engine Mapping and the low level RSEM - Resource to Search Engine Mapping.
Compass integrates with ORM
Object-relational mapping
Object-relational mapping in computer software is a programming technique for converting data between incompatible type systems in object-oriented programming languages. This creates, in effect, a "virtual object database" that can be used from within the programming language...
frameworks allowing for a single API to index all the content mapped by both the ORM and Compass. It also allows to automatically mirror changes done through the ORM API into the Search Engine. Compass has generic support for JPA
Java Persistence API
The Java Persistence API, sometimes referred to as JPA, is a Java programming language framework managing relational data in applications using Java Platform, Standard Edition and Java Platform, Enterprise Edition....
and embedded support for Hibernate
Hibernate (Java)
Hibernate is an object-relational mapping library for the Java language, providing a framework for mapping an object-oriented domain model to a traditional relational database...
, OpenJPA, TopLink
TopLink
In computing, TopLink is an object-relational mapping package for Java developers. It provides a framework for storing Java objects in a relational database or for converting Java objects to XML documents....
, and EclipseLink
EclipseLink
EclipseLink is the open source Eclipse Persistence Services Project from the Eclipse Foundation. The software provides an extensible framework that allows Java developers to interact with various data services, including databases, web services, Object XML mapping , and Enterprise Information Systems...
.
Distributed Lucene index (both pure Lucene
Lucene
Apache Lucene is a free/open source information retrieval software library, originally created in Java by Doug Cutting. It is supported by the Apache Software Foundation and is released under the Apache Software License....
and using Compass) support by allowing to store the Lucene index within Data Grid products such as GigaSpaces, Oracle Coherence Data Grid, and Terracotta
Terracotta, Inc.
Terracotta is a Software AG company that specializes in application scalability, availability and performance for enterprise Java. Terracotta software is used in 190 countries on 500,000+ deployments by more than one million developers.- History :...
. There is also support for distributed and collocated indexing and searching.
Compass provides extensive integration with Spring Framework including transaction management, Spring MVC, and Spring aspects for reflecting operations to the search engine.