Search Service
Overview
The provision of the "search" functionality is one the fundamental objective for a Digital Library Management System (DLMS) and it is one of the main front-ends of the Diligent Digital Library Layer (DLL) to the application layer.
Usually, use-cases refer to the search functionality for different types of search, assuming that a totally different approach and mechanisms are required to offer and access it. However the motivation behind the gCube Search Service design is to create an extensible, open, yet "all-in-one" search engine, that will uniformly cover all types of search, be it text searches, similarity based, field matching based, etc.
As a result of this approach, the Search Service is the orchestrator of the Information Retrieval process in gCube, distributed in its nature, that consolidates query and environment information, that prepares and plans retrieval execution and ultimately offers the gluing elements that bring together all the independent components into a meaningful and performant collaboration..
Features
- Supports: Full Text Search, Content Based Search, Geospatial Search, Search over semi structured (XML) and structured (tabular) data.
- Is totally independent from underlying schemas and organisation of information.
- Exploits advanced Distributed Information Retrieval and Indexing facilities provided by external services.
- Is modular, open and extendible, easily extendible to capture application domain specific needs.
- Is independent from implementations of basic information processing components (i.e. the operators).
- Offers a highly structured query language.
- Embeds execution planning and optimization avoiding misutilization and overloading failures.
- Handles efficiently the plurality and dynamicity of resources available on a DILIGENT grid infrastructure.
- Provides the means for instant response user queries, overcoming limitations of SOA and web services (paging of results and flow control).
- Is inherently Service Oriented
- Is internally homogeneous and robust, fully developed in Java, with extensive logging and exception handling.
- Reuses several underlying DILIGENT platform logical layers and external technologies thus avoids duplication of effort and promotes stability.