The performance of single keyword searches is highly dependent on the number of candidate returned by the keyword for subsequent filtering. The extremely high number of matches for some words in common use makes it likely that some searches will be unacceptably slow.

One way to alleviate this problem would be to create a table containing a row for all combinations of word pairs in each . In some database environments that support optimization of multiple key searches, this may offer no benefits. However, in other environments, such a table may substantially speed searches.

A comprehensive word pair table would be very large. Such a table covering the full content of would contain approximately 1.5 million unique word pairs and 6 million rows. Limiting the unique keys to the first three letter of each word reduces the table size to a more readily optimized set of keys. This requires the final part of the search to be conducted using text comparison (since the keys are incomplete).

Generating the DualKey index

Although Dualkey indexes are available as part of the Developer Toolkit , it is important to know how this table is generated. users that generate should follow the method outlined below to generate new entries in the Dualkey index, based on the in the .

For each , parse the text of the term :

Example: Generation of keywords for a sample Description

Table 36. Sample Description

 

 

 

Term

33592011||

19954002|Reconstruction of hip with use of methyl methacrylate (procedure)|

Total replacement of hip with use of methyl methacrylate

"TOTAL REPLACEMENT OF HIP WITH USE OF METHYLE METHACRYLATE"

  1. TOTAL;
  2. REPLACEMENT;
  3. OF;
  4. HIP;
  5. WITH;
  6. USE;
  7. OF;
  8. METHYLE;
  9. METHACRYLATE.
  1. HIP;
  2. MET;
  3. REP;
  4. TOT;
  5. USE.

Note:

"OF" is less than 3 characters and is an excluded word, "WITH" is an excluded word and "MET" is duplicated, so we only include it once.

Example: Search using word pair index

User searches for "PYRO* 1 OXYGEN*".

  1. "PYRO*";
  2. 1;
  3. "OXYGEN*".
  1. "OXY";
  2. "PYR".

OXYPYR