In order for this site to work correctly, and for us to improve the site, we need to store a small file (called a cookie) on your computer.
By continuing to use this website, you agree to our cookies and privacy policy.
Home page Home page Home page Home page
Pixel Header R1 C1 Pixel
Pixel Header R2 C1 Pixel
Pixel Header R3 C1 Pixel

Reader's Clinic - Stop Lists

Gareth Hardy of Chilworth Communications recently faxed in relation to the GO LIST tip in issue 5 "The problem is I need to update the go list quite frequently and yet I don't want to have to rebuild that index each time a change is made. A complete list of codes is held on a parameters file elsewhere. Any ideas?"

When an XREF index is added to a field, a new dictionary item is created with the suffix '.XREF' and this item calls the routine XREF to dynamically parse the array into multi-values using the specified delimiter list. EG with a normal GO list (CALL omitted)

0001      XREF({TEXT},\20\,LIST,"4")

where LIST was actually "ABC1" : @VM : "ABC2" : @VM : "ABC3". This could just be modified to read

0001      LIST=XLATE("PRMS","GO","", "X")
0002      XREF({TEXT},\20\,LIST,"4")

or whatever the parameters file is called, ie Xlate the go list at run time.

This works, but remember the caveat that as the list is changed ONLY NEW ENTRIES will reflect this new list. In other words, previously indexed records will not be indexed on the new GO words until the index is rebuilt.


Remember when using STOP lists, BTREE.EXTRACT is not aware of their existence. If INC is in the STOP list and the user asks for ACME INC, the system will get hits for ACME but get no hits for INC. It will AND the two lists and decide that there are no occurrences of ACME INC. It is best to avoid STOP lists unless you are sure that this will not happen to you OR modify all calls to BTREE.EXTRACT to remove the STOP words.

(Volume 2, Issue 7, Page 3)
Pixel Footer R1 C1 Pixel