Testing Design Approaches for Matching Keywords with Database Records - February 21st, 2012

Skip to end of metadata
Go to start of metadata

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:

  1. Create a test database following the proposed database design
  2. Populate the database tables using information from current profile system database
  3. Create Lucene index on the database records using appropriate approach
  4. 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:

      a.) Create a test database:

This was completed by using MySQL workbench Forward Engineering tool which helps to create database from the E-R diagram.

      b.) Populate database tables:

A PHP data migration script was written to populate the nist test database with records from profile system database.

      c.) Create Lucene index:

We are testing two approaches to find the best fit. A brief discussion is given below:

  1. Creating multiple indexes for multiple tables.
  2. 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.

       d.) Use Lucene search technique:

This is already tested and we can get matching records for given keywords.

Enter labels to add to this page:
Please wait 
Looking for a label? Just start typing.