Administration: Omnidex Indexing

PowerSearch

Custom Usages

Usages are essential to the customization of PowerSearch. The POWERSEARCH option instructs Omnidex to evaluate the columns referenced in the WHERE clause of the SELECT statement, and matches their USAGE clauses with the preconfigured instructions for each USAGE. These instructions describe actions such as using synonyms, checking for misspelling, or even doing geographic searches.

The Usages File Layout

These preconfigured instructions can be customized or expanded to meet the needs of each application. The usage instructions exist in a tab-delimited file with six columns. It can be modified using a text editor such as 'Notepad' on Windows or 'vi' on UNIX. It can also be created in a spreadsheet program such as Microsoft Excel, which allows a file to be saved as a Tab-Delimited File.

The record layout of the usages table consists of six columns:

Column Name Datatype
$LIST CHARACTER(32)
$USAGE CHARACTER(32)
$PARSING CHARACTER(32)
$FORMAT CHARACTER(255)
$POWERSEARCH STRING(4094)
$COMMENTS STRING(255)
$LIST

The name of the list, repeated for each row in the list. This name can be optionally referenced in the POWERSEARCH option to specify a specific list of usages. This allows different applications to use different sets of PowerSearch instructions. Omnidex is shipped with only one list named DEFAULT, which is used if no list is provided.

$USAGE

The name of the usage as declared for the column in the CREATE TABLE statement.

$PARSING

This column is reserved for future use and not used in this version of Omnidex.

$FORMAT

This column is reserved for future use and not used in this version of Omnidex.

$POWERSEARCH

The replacement string to be substituted in the WHERE clause when the POWERSEARCH option is used. There are special tokens that can be referenced in this field:

  • %COLUMN% - This token is replaced with the name of the column applying this usage.
  • %CRITERIA% - This token is replaced with the criteria passed in the WHERE clause for this column.

Typically, the replacement string uses a $CONTAINS clause that applies synonyms, misspellings or other Omnidex features. The use of a $CONTAINS clause is not required, though. While every SQL construct cannot be supported, administrators can use a wide variety of SQL clauses in this section, including complex, parenthesized, Boolean predicates, nested queries, etc.

$COMMENTS

Comments that are useful to the administrator to document this usage.

Custom Synonym Lists

Synonym lists are an important tool for PowerSearch. Synonym lists allow your search terms to be automatically expanded to make your search more flexibile. The examples on the previous pages used many synonym lists, such as Given Names, Postal Abbreviations, City Names and Area Codes. Omnidex provides a base set of synonym lists as part of the product, but it is also possible to create your own synonym lists.

Synonym lists are usually limited to a specific topic, such as Given Names, or City Abbreviations. It is important to watch for cross-overs between synonyms. For example, it would be prudent to keep city, state and country abbreviations in separate lists. LA as a city code is an abbreviation for Los Angeles; however, as a state code, it is an abbreviation for Louisiana. In these situations, each column should use its own managed synonym list so that overlap does not occur.

The Synonym List Library

Before creating your own synonym lists, be sure to check the synonym lists that are provided with Omnidex. The list you need may have already been created, or there may be a similar list that you can use as a starting point. If you do create your own synonym list, consider whether it would benefit the broader Omnidex community. If you would like to submit a synonym list for inclusion in the product, simply send it to Technical Support with a note saying that you are contributing it to the product.

The Synonym List File Layout

Creating a new synonym list is straightforward. It is simply a tab-delimited file with four columns. It can be created using a text editor such as 'Notepad' on Windows or 'vi' on UNIX. It can also be created in a spreadsheet program such as Microsoft Excel, which allows a file to be saved as a Tab-Delimited File.

The record layout of the synonym table consists of four columns:

Column Name Datatype
$LIST CHARACTER(32)
$WORD STRING(127)
$REPLACEMENT STRING(4094)
$COMMENTS STRING(255)
$LIST

The name of the list, repeated for each row in the list. This name will be referenced in the $CONTAINS clause using the syntax, 'SYNONYMS=list'. Be sure to choose a list that does not conflict with an existing list in the library.

$WORD

The word or phrase for which synonyms are being created. Phrases should be enclosed in double quotes.

$REPLACEMENT

The replacement string to be used as a synonym list. Normally, this is a comma-delimited list of synonyms; however, it can be any of the following choices, intermingled and in any order.

Replacements may consist of any of the following choices. Replacements may also be intermingled, and occur in any order.

Words and Phrases

Replacements can be a word or phrase to be used in place of the current word. Note that for the synonyms to include the current word itself, it must be included in the replacement text. Words may be separated by commas. Phrases must be enclosed in double-quotation marks. For example:

$LIST $WORD $REPLACEMENT $COMMENTS
CITIES LA LA, “Los Angeles”
CITIES SF SF, “San Francisco”, “Santa Fe”
STATES LA LA, Louisiana
STATES NM NM, “New Mexico”

Qualification Criteria

Replacements can be qualification criteria, indicated by enclosing the entire replacement string in parentheses. These criteria may include Boolean operators and nested parentheses. For example:

$LIST $WORD $REPLACEMENT $COMMENTS
DATE_RANGES FISCAL_2009 (Between 7/1/2008 and 6/30/2009)
DATE_RANGES FISCAL_2010 (Between 7/1/2009 and 6/30/2010)
DATE_RANGES FISCAL_2011 (Between 7/1/2010 and 6/30/2011)

Pointers to Other Entries

Replacements can be pointers to other entries within the same list. Pointers are indicated by prefixing the word with a greater-than sign (>). Pointers are allowed to be nested. For example:

$LIST $WORD $REPLACEMENT $COMMENTS
FIRST_NAMES FRED >Fredrick
FIRST_NAMES FREDRICK Fredrick, Fred, Rick
FIRST_NAMES RICK Rick, Ricky, Richard, Dick, >Fredrick
$COMMENTS

Comments that are useful to the administrator in documenting this synonym.

Installing a New Synonym List

Installing a new synonym list is as simple as saving the file in the synonym directory. The synonym directory is as follows:

Windows:

%OMNIDEX_HOME%\config\english\synonyms

UNIX:

$OMNIDEX_HOME/config/english/synonyms

After the file has been installed, it must be indexed. This is done using the following command:

Windows:

cd %OMNIDEX_HOME%\config
build_config.bat

UNIX:

cd $OMNIDEX_HOME/config
build_config.ksh

Testing a New Synonym List

Once a synonym list has been installed, it can be tested using the following command in OdxSQL. In this example, replace the values in angle brackets with values appropriate to your database.

connect <environment>
lookup $contains(<table>.<column>, 'criteria', 'SYNONYMS=<list>')

As an example, this same command is shown running against the ALL_GIVEN_NAMES synonym list:

> connect simple
Connected to D:\class\lab2\simple.xml
> lookup $contains(individuals.name, 'William', 'synonyms=ALL_GIVEN_NAMES')
  IN (William, Bill, Billy, Will, Williams, Willie, Willis, Wilson)

Additional Resources

See also:

 
Back to top
admin/indexing/powersearch/custom.txt · Last modified: 2016/06/28 22:38 (external edit)