FULLTEXT File Type


Access to this feature requires an active Software Asset Management (SAM) subscription. See Benefits of ‘Software Asset Management' Feature Line.


At the core, BBj uses its FULLTEXT "file type" to implement full text searching and indexing. This file type allows BBj to interface with a standard Lucene index as if it were a standard BBj data file. An application creates a FULLTEXT file using the FULLTEXT verb (or at the database level using the EM or SQL as discussed in SQL FULLTEXT Indices). The application opens, writes records to, and reads records from the FULLTEXT file using familiar BBx file operations such as OPEN, WRITE RECORD, READ RECORD, and REMOVE.

The following simple example shows how one could write comments to a FULLTEXT file for quick searching:


REM Create the FULLTEXT file

myFile$ = "/mydata/COMMENTS.text"

template$ = "ID:C(8),COMMENTS:C(32767*)"

keyField$ = "ID"

FULLTEXT myFile$, template$, keyField$

 

REM Open the file and write 2 records to it

chan = unt

OPEN(chan)

DIM record$:template$

record.ID$ = "00000001"

record.COMMENTS$ = "I like blue shirts and yellow socks."

WRITE RECORD (chan) record$

 

record.ID$ = "00000002"

record.COMMENTS$ = "I like red hats and orange tigers."

WRITE RECORD (chan) record$

 

REM Perform a simple word search

READ RECORD (chan, KNUM=1, KEY="yellow") record$

PRINT "Match: " + record.COMMENTS$

 

REM This read will fail with EOF since there are no

REM additional matches

READ RECORD (chan) record$

 

The program breaks down as follows:

  • Creates the Lucene index using FULLTEXT verb with a specific template to define its contents.
  • Writes two records to the index using standard WRITE RECORD calls.
  • Specifies a query to be used for iteration over the file using the READ RECORD verb, KNUM= 1 to indicate a query (use KNUM=0 instead to specify the key for a specific record), and KEY="..." to specify the Lucene format query.
  • Displays the matching result.
  • Attempts to read another result which will fail with EOF if no additional matches are found.

See Also

Full Text Indexing and Searching

FULLTEXT Verb - Create FULLTEXT File

SQL FULLTEXT Indices

Using FULLTEXT Files/Indices for Searching