"Go" Lists in Crossreference Indexes
Published By | Date | Version | Knowledge Level | Keywords |
---|---|---|---|---|
Revelation Technologies | 19 MAR 1991 | 2.1X | INTERMEDIATE | GO-LIST, SOFT |
Cross Reference index setup in Advanced Revelation offers you the opportunity to establish a "stop list" of words that will not be indexed. This is used typically to exclude words from the index that are simply too common (example: "the"), or that you are sure you will never use for searches (example: "Inc.").
An undocumented feature of Cross Reference indexes is that you can establish the inverse of a stop list: a list of words that are the only ones that will appear in the index. This is informally known as a "go list". Go lists are particularly useful when you have an application with a fixed list of keywords to search on and you want to create an index of just those words.
Establishing a Go List
Setting up a go list is similar to establishing a custom stop list. However, the Cross Reference window (available via Tools-Files-Indexing) contains a validation pattern at the "Stop list modes" prompt that will not allow you to establish a go list. You should therefore use the [Shift-F1] softkey in the Dictionary window to set up your go lists.
Follow the pattern that you would use for a normal Cross Reference index, with these differences:
- For "Stop list", enter a 4.
- At the "Define stop list" prompt, enter the list of words that constitute your go list. The indexing system will not use the default stop list in the environment, so your go list must be complete.
Save and build the index normally. Only the words in your go list will appear in the index.
Creating a "Soft" Go List
You may find it inconvenient to enter your go list by hand, especially if it is long or the entries are derived from a table. However, it is possible within some limits to make a "soft" go list, one in which the system can extract the go list from a file or record.
When you create a Cross Reference index, including one based on a go list, the Advanced Revelation indexing system creates a special version of the field you are indexing. This special field is named field_name.XREF (for example, COMPANY_NAME.XREF), and is a symbolic that is defined using a formula. The formula takes this form:
@ANS = XREF( {field_name}, delimiters,ï stop_list, stop_mode)
where:
field_name | is the name of the field being indexed (for example, COMPANY_NAME) |
delimiters | the hex constant(s) of the delimiter(s) being used to separate words (for example, SPACE becomes \20\) |
stop_list | a value-mark-delimited list of the words in the "additional stop list" |
stop_mode | "4" for a go list |
You can alter this formula easily to create a go list in which the list of words is derived from a file. For example, if your go list is a list called GO_LIST in the LISTS file, you could alter the formula above in this manner:
GO_LIST = XLATE('LISTS',"GO_LIST",'','X') CONVERT @FM TO @VM IN GO_LIST @ANS=XREF({COMPANY_NAME},\20\,GO_LIST,"4")
Limitations of a Soft Go List
Although you can make the go list "soft", the go list itself must remain relatively static. Any time you alter the formula for an existing Cross Reference index, you must rebuild the index. This is even true if you simply add a word to the go list on file. If you do not rebuild the index after altering the go list, the records already indexed will not reflect the altered go list, possibly introducing logical corruption into the index.