cfed1e9c14a77b903abee5a08ddebdcdf1966e9a
3 * Definition of a mapping for the search index field.
6 interface SearchIndexField
{
10 const INDEX_TYPE_TEXT
= 0;
11 const INDEX_TYPE_KEYWORD
= 1;
12 const INDEX_TYPE_INTEGER
= 2;
13 const INDEX_TYPE_NUMBER
= 3;
14 const INDEX_TYPE_DATETIME
= 4;
15 const INDEX_TYPE_NESTED
= 5;
16 const INDEX_TYPE_BOOL
= 6;
18 * Generic field flags.
21 * This field is case-insensitive.
23 const FLAG_CASEFOLD
= 1;
25 * This field contains secondary information, which is
26 * already present in other fields, but can be used for
29 const FLAG_SCORING
= 2;
31 * This field does not need highlight handling.
33 const FLAG_NO_HIGHLIGHT
= 4;
35 * Do not index this field, just store it.
37 const FLAG_NO_INDEX
= 8;
40 * Similar to FLAG_NO_INDEX but we inform the SearchEngine
41 * that this field should not be part of the search schema
43 * SearchEngine implementations could then override its settings
44 * or simply use this data for other purposes.
46 const FLAG_SOURCE_DATA
= 16;
49 * Get mapping for specific search engine
50 * @param SearchEngine $engine
51 * @return array|null Null means this field does not map to anything
53 public function getMapping( SearchEngine
$engine );
55 * Set global flag for this field.
57 * @param int $flag Bit flag to set/unset
58 * @param bool $unset True if flag should be unset, false by default
61 public function setFlag( $flag, $unset = false );
63 * Check if flag is set.
65 * @return int 0 if unset, !=0 if set
67 public function checkFlag( $flag );
69 * Merge two field definitions if possible.
71 * @param SearchIndexField $that
72 * @return SearchIndexField|false New definition or false if not mergeable.
74 public function merge( SearchIndexField
$that );