.
contact contact

B.08.20 / Release Notes / Database / FTS / FTS Compat

FTS Backwards Compatibility

 
.
  As an option, Eloquence implements "ODX" calls to access the Eloquence FTS functionality. This allows existing applications relying on ODX/DBI calls to make use of Eloquence FTS indexes with no or only minor changes. New applications should use IMAGE TPI calls to access FTS indexes.

A separate B.08.20 "FTC" license key is required to enable ODX/DBI call compatiblity.

The ODX compatibility is implemented in the libftc library. This library must be loaded to enable ODX calls. The libftc library internally makes use of the image3k library (implementing the TurboIMAGE compatibility) and the eqdb library (Eloquence client library).

The libftc also implements support for "DBI" calls to access the Eloquence native indexes. Please note that DBI calls are not required to use ODX calls. ODX calls may be used with any database opened through the image3k library. dbexplain and dberror are aware of ODX (or DBI) specific status codes.

Documentation of the ODX/DBI calls as implemented by the Eloquence libftc:

Migrating from Omnidex to Eloquence FTC

Eloquence B.08.20 needs to be installed and the B.08.20 hp3k and ftc license keys must be present.

The Omnidex dbinstal syntax must be translated manually to the equivalent dbutil syntax. dbutil is then used to create the FTS indexes. Any existing and future data is indexed automatically.

Any secondary indexes (IMSAM) must also be created in Eloquence (using dbutil). Please note that creating an index on a master set search item is is not required (and is discouraged) as Eloquence already uses indexes for master set search items.

The application must make use of the libftc library instead of Omnidex libraries. If necessary specify a SHLIB_PATH or LD_LIBRARY_PATH and/or create symbolic links.

Notes:

  • Eloquence FTC does not need (and does not support) "alternate IDs". It implements the equivalent of "transparent IDs". As Eloquence does not use hashing there is no need to maintain a separate ID to identify the record.
    Consequently, ODXINFO mode 8 returns a hard coded response indicating use of transparent IDs and ODXINFO modes 9 and 10 are not available.

  • With Eloquence a master set without any FTS fields does not need to (and can't) be designated a domain master in dbutil. It becomes a domain master equivalant once a linked detail exists.

  • By default any FTS field in a detail set linked to a master set is record specific (equivalent to the RS option). To specifiy RC fields in a linked detail the AGG option must be used with the PATH= option.

  • With Eloquence, each field in a detail set may be configured individually to link to a master set (with the PATH= option). However, only one master set may be specified for a detail set (any fields configured to link to a master set must refer to the same master set).

    ODXINFO assumes that a detail set is in a search domain if at least one field is linked. This may have the effect that previous search results on a detail may not be applicable to the domain master. For full ODX compatibility all fields in a linked detail should be linked.

    When a field is linked to a master set a reference to the detail record is maintained in addition to a reference to the master record (equivalent to the Omnidex RS option).
    When the AGG option is used, keyword references are maintained aggregated for each master record (equivalent to the Omnidex RC option).
    When a field is not linked only a reference to the detail record is maintained (similar to standalone details with Omnidex).

    Using aggregated fields is an efficient way to maintain keyword references as only a reference to the master record is maintained for any number of detail records. Using fields not linked to a master set is more efficient than linked fields.

  • Any Omnidex field option (other than RS/RC) must be specified as a field option in dbutil, equivalent options exist.

  • For close Omnidex compatibility the parser config 0 should be defined as below (dbutil syntax):
    CHANGE FTS PARSER CONFIG P0
     nsep   = ""
     csep  = "%#$&"
     multi = "-/_'"
     dec   = ".,"
     ;
    
    The default Eloquence parser config has a different default for the csep and multi parser configuration options.

  • The default keyword length in Eloquence is 12 bytes with a minimum keyword length of 2 bytes (shorter words are excluded implicitly). This may be specified per FTS field.
    Omnidex uses a global keyword length for all fields and does not support a minimum keyword length. For close Omnidex compatibility it should be considered to specity the keyword length (MAX=# option) and a zero keyword length (MIN=# option) when definining the FTS fields in dbutil.

  • When migrating secondary indexes (IMSAM) please keep in mind that Eloquence indexes are case sensitive and include empty values by default. The Omnidex defaults are the opposite. The following example defines a secondary index ITEM-NO on the ITEM-DETAILS set using dbutil syntax specifying a case insentive keys and ignoring empty values.
    create iitem ITEM-NO(empty,ci) = ITEM-NO;
    change set ITEM-DETAILS add index ITEM-NO;
    


 
 
 
  Privacy | GDPR / DSGVO | Webmaster | Terms of use | Impressum Revision: 2019-06-14  
  Copyright © 1995-2024 Marxmeier Software AG