We are planning to use Zend Lucene for searching the keywords in the database. In this design phase, we have to complete the following tasks to understand the big picture:
- Create a test database following the proposed database design
- Populate the database tables using information from current profile system database
- Create Lucene index on the database records using appropriate approach
- Use Lucene search technique to find the matching records containing the keywords
Tasks ‘a’, ‘b’ and ‘d’ are complete and task ‘c’ is being carried out to compare two alternative approaches. Details status is discussed below:
This was completed by using MySQL workbench Forward Engineering tool which helps to create database from the E-R diagram.
A PHP data migration script was written to populate the nist test database with records from profile system database.
We are testing two approaches to find the best fit. A brief discussion is given below:
- Creating multiple indexes for multiple tables.
- Creating single index for all the data.
For the first approach, we create separate index for each of the tables. Then we use Zend Lucene’s multisearcher technique to create a parent index over all the indexes and use that index to find the matching records.
In the second approach, appropriate tables are joined to form a record for a particular profile type i.e. Faculty/ Technology. All the records of a particular profile type will constitute a document. Each of these documents will be added to a single index which will be used for searching.
This is already tested and we can get matching records for given keywords.