The concepts behind indexing and the Lucene API have already been introduced. So why not just use Lucene directly in Cúram application?
Whereas Lucene is an excellent API for indexing and searching, it does not address all of the requirements of a Cúram searching product:
- It does not address deployment issues - how to run multiple search servers, how the application should communicate with the search servers, etc.
- It does not address the issue of how to import data into Indices
- It does not address the issue of keeping Index data synchronized with source data in the running application.
- It does not address the issue of interpreting data returned from an Index search as Cúram datatypes and structs.
- It does not address the more overarching application requirement of protecting the Application Developer from in-depth knowledge of specific third-party products; given that Lucene is only one potential searching solution, it would seem to make more sense to provide a more generic searching API.
The Cúram Generic Search Server was developed to deal with these requirements.