From Version 3.1 ObjectDatabase++ supports Token List indexes as well as B+-Tree and Spatial indexes. This third type of index structure allows database designers the ability of providing efficient full text search facilities without the need to create the index separately and with the speed of the implementation within the ODBMS.
The Token List index takes one or more strings from a database object, splits it into its various tokens, and indexes those tokens in a B+-Tree. When a search is carried out, the database only needs to scan each indivisible token and not the full text of each object, reducing the total amount of time taken to identify the correct records. Searching the tokens of each object rather than the full text enables the index search to cancel out objects that many be locked by another transaction – preventing deadlock.
The Token List searches provides several different mechanisms for the search, firstly there are the Boolean logical operators: - and; or; xor; not; and (). Secondly there are token operators: - if a token is to contain a string, "A" or A; if a token is to start with a string " A"; if a token is to end with a string "A "; and lastly, is a token is to match a given string " A ". Other string matching operations such as "A near B", require that a search "A and B", then the results are scanned by your program to find all matching strings that A is in fact near B - as this style of search required the full text and is not helped by any index structure.