|
|
Topic complex |
Fulltext functions |
Function |
marktable() |
Short |
Searches in a fulltext index |
Syntax |
MARKTABLE(db, i : INTEGER; Exp, ExtABC, Ops : STRING; Mask, Rel : INTEGER) : INTEGER |
Parameter |
db, i, Rel : table handle from OpenDB
Exp : Search expression
ExtABC : additional chars (to letters)
Ops : link operators
Mask : search mask |
Return |
Number of the found records, if >=0
error code, if <0 |
See also: |
|
Description |
The function result is the number if the found records (if positive) resp. one of the error codes:
-64 invalid index table
-77 invalid relations table
-56 illegal parenthesis in the search string
-45 invalid char in the search string
The last two errors can be defined closer with TDB_ErrorMsg and TDB_ErrorOfs.
The search string is a string of the following form:
Searchstring ::= expression
expression ::= Term { OR operator Term}
Term ::= Factor { AND-operator Factor}
Factor ::= search word | "(" expression ")"
A search word is a string with letters, the chars from ExrABC and the special chars "?" and "*". Thereby "?" means one any desired char, "*" means any number of chars.
The following operators are predefined (if in Ops an empty string is delifered):
OR-Operator + (set union, logical OR)
AND-Operators , (intersection, logical AND)
- (section with complement set, logical AND NOT)
Example:
Meier finds all records which include the word Meier case insensitive.
Mei*er finds all records which includes words that start with "Mei" and end with "er".
Hans, Meier in the record as the word Hans as the Meier has to be included.
Hans+Meier finds records that include Hans or Meier or both.
Hans-Meier finds records that includes Hans but nor Meier.
Ops
In the parameter Ops operators can redefined. For it a string with exactly three chars has to be deliferd. The first char is the sign of the operator for logical AND, the second is the logical OR and at least the third is the logical AND NOT.
Mask number
The specification of a mask number makes only then sence if already at the fulltext indexing has been worked with a mask field or a mask constant. The here defined number and the in the link saved number are linked with a binary AND. Only those records are found where the binary AND results a value else than 0.
Special case: The mask number 0 returns all links.
Example:
the fulltext indexing takes place with the following index description:
Fields(Name:1,Firstname:2,Street:4)
The search for Hans returns than depending on the mask number
0 In (at least) one of the fields the word is included
1 The word is in the field name included
2 The word is in the fielf Firstname included
3 The word is in the field Name or in the field Firstname (or in both) included
4 The word is in the field Street included
5 The word is in the field Name or in the field Street (or in both) included
...
7 The word is in (at least) one of the fields Name, Firstname or Street included.
|
Write a comment:
|
|
|