CWIS Developer Documentation
|
Core metadata archive search engine class. More...
Public Member Functions | |
__construct ($ItemTableName, $ItemIdFieldName, $ItemTypeFieldName) | |
Object constructor. More... | |
AddField ($FieldId, $FieldType, $ItemTypes, $Weight, $UsedInKeywordSearch) | |
Add field to include in searching. More... | |
FieldType ($FieldId) | |
Get type of specified field (text/numeric/date/daterange). More... | |
FieldWeight ($FieldId) | |
Get search weight for specified field. More... | |
FieldInKeywordSearch ($FieldId) | |
Get whether specified field is included in keyword searches. More... | |
DebugLevel ($NewValue) | |
Set debug output level. More... | |
Search ($SearchParams, $StartingResult=0, $NumberOfResults=PHP_INT_MAX, $SortByField=NULL, $SortDescending=TRUE) | |
Perform search with specified parameters. More... | |
FieldedSearch ($SearchStrings, $StartingResult=0, $NumberOfResults=10, $SortByField=NULL, $SortDescending=TRUE) | |
Perform search across multiple fields, with different values or comparisons specified for each field. More... | |
AddResultFilterFunction ($FunctionName) | |
Add function that will be called to filter search results. More... | |
NumberOfResults ($ItemType=NULL) | |
Get number of results found by most recent search. More... | |
SearchTerms () | |
Get normalized list of search terms. More... | |
SearchTime () | |
Get time that last search took, in seconds. More... | |
FieldedSearchWeightScale ($SearchParams) | |
Get total of weights for all fields involved in search, useful for assessing scale of scores in search results. More... | |
UpdateForItem ($ItemId, $ItemType) | |
Update search database for the specified item. More... | |
UpdateForItems ($StartingItemId, $NumberOfItems) | |
Update search database for the specified range of items. More... | |
DropItem ($ItemId) | |
Drop all data pertaining to item from search database. More... | |
DropField ($FieldId) | |
Drop all data pertaining to field from search database. More... | |
SearchTermCount () | |
Get total number of search terms indexed by search engine. More... | |
ItemCount () | |
Get total number of items indexed by search engine. More... | |
AddSynonyms ($Word, $Synonyms) | |
Add synonyms. More... | |
RemoveSynonyms ($Word, $Synonyms=NULL) | |
Remove synonym(s). More... | |
RemoveAllSynonyms () | |
Remove all synonyms. More... | |
GetSynonyms ($Word) | |
Get synonyms for word. More... | |
GetAllSynonyms () | |
Get all synonyms. More... | |
SetAllSynonyms ($SynonymList) | |
Set all synonyms. More... | |
LoadSynonymsFromFile ($FileName) | |
Load synonyms from a file. More... | |
Public Attributes | |
const | LOGIC_AND = 1 |
const | LOGIC_OR = 2 |
const | FIELDTYPE_TEXT = 1 |
const | FIELDTYPE_NUMERIC = 2 |
const | FIELDTYPE_DATE = 3 |
const | FIELDTYPE_DATERANGE = 4 |
const | WORD_PRESENT = 1 |
const | WORD_EXCLUDED = 2 |
const | WORD_REQUIRED = 4 |
const | KEYWORD_FIELD_ID = -100 |
const | STEM_ID_OFFSET = 1000000 |
const | SEARCHLOGIC_AND = 1 |
const | SEARCHLOGIC_OR = 2 |
const | COMPARISON_OPERATOR_PATTERN = '/^([><=^$@]+|!=)([^><=^$@])/' |
Protected Member Functions | |
SearchFieldForPhrases ($FieldId, $Phrase) | |
Search for phrase in specified field. More... | |
FilterOnSuppliedFunctions ($Scores) | |
Filter search scores through any supplied functions. More... | |
GetFieldContent ($ItemId, $FieldId) | |
Retrieve content for specified field for specified item. More... | |
DMsg ($Level, $Msg) | |
Print debug message if level set high enough. More... | |
Protected Attributes | |
$DB | |
$DebugLevel | |
$FilterFuncs | |
$ItemIdFieldName | |
$ItemTableName | |
$ItemTypeFieldName | |
$LastSearchTime | |
$NumberOfResultsAvailable | |
$StemmingEnabled = TRUE | |
$SynonymsEnabled = TRUE | |
Core metadata archive search engine class.
Definition at line 13 of file SearchEngine.php.
SearchEngine::__construct | ( | $ItemTableName, | |
$ItemIdFieldName, | |||
$ItemTypeFieldName | |||
) |
Object constructor.
string | $ItemTableName | Name of database table containing items. |
string | $ItemIdFieldName | Name of column in item database table containing item IDs. |
string | $ItemTypeFieldName | Name of column in item database table containing item types. |
Definition at line 41 of file SearchEngine.php.
References $ItemIdFieldName, $ItemTableName, $ItemTypeFieldName, and DebugLevel().
SearchEngine::AddField | ( | $FieldId, | |
$FieldType, | |||
$ItemTypes, | |||
$Weight, | |||
$UsedInKeywordSearch | |||
) |
Add field to include in searching.
int | $FieldId | ID of field. |
int | $FieldType | Type of field (FIELDTYPE_ constant value). |
mixed | $ItemTypes | Item type or array of item types to which the field applies. |
int | $Weight | Numeric search weight for field. |
bool | $UsedInKeywordSearch | If TRUE, field is included in keyword searches. |
Definition at line 66 of file SearchEngine.php.
Referenced by SPTSearchEngine\__construct().
SearchEngine::AddResultFilterFunction | ( | $FunctionName | ) |
Add function that will be called to filter search results.
callable | $FunctionName | Function to be called. |
Definition at line 242 of file SearchEngine.php.
SearchEngine::AddSynonyms | ( | $Word, | |
$Synonyms | |||
) |
Add synonyms.
string | $Word | Word for which synonyms should apply. |
array | $Synonyms | Array of synonyms. |
Definition at line 438 of file SearchEngine.php.
Referenced by LoadSynonymsFromFile(), and SetAllSynonyms().
SearchEngine::DebugLevel | ( | $NewValue | ) |
Set debug output level.
Values above zero trigger diagnostic output.
int | $NewValue | New debugging level. |
Definition at line 112 of file SearchEngine.php.
Referenced by __construct(), DMsg(), FilterOnSuppliedFunctions(), and SPTSearchEngine\SearchFieldForPhrases().
|
protected |
Print debug message if level set high enough.
int | $Level | Level of message. |
string | $Msg | Message to print. |
Definition at line 2205 of file SearchEngine.php.
References DebugLevel().
Referenced by FieldedSearch(), FilterOnSuppliedFunctions(), GetFieldContent(), Search(), SPTSearchEngine\SearchFieldForPhrases(), SearchFieldForPhrases(), and SPTSearchEngine\SearchFieldsForComparisonMatches().
SearchEngine::DropField | ( | $FieldId | ) |
Drop all data pertaining to field from search database.
int | $FieldId | ID of field to drop. |
Definition at line 405 of file SearchEngine.php.
SearchEngine::DropItem | ( | $ItemId | ) |
Drop all data pertaining to item from search database.
int | $ItemId | ID of item to drop from database. |
Definition at line 394 of file SearchEngine.php.
SearchEngine::FieldedSearch | ( | $SearchStrings, | |
$StartingResult = 0 , |
|||
$NumberOfResults = 10 , |
|||
$SortByField = NULL , |
|||
$SortDescending = TRUE |
|||
) |
Perform search across multiple fields, with different values or comparisons specified for each field.
This method is DEPRECATED – please use SearchEngine::Search() with a SearchParameterSet object instead.
array | $SearchStrings | Array of search strings, with field names for index. |
int | $StartingResult | Starting index into results. (OPTIONAL, defaults to 0) |
int | $NumberOfResults | Number of results to return. (OPTIONAL, defaults to 10) |
string | $SortByField | Name of field to sort results by. (OPTIONAL, defaults to relevance score) |
bool | $SortDescending | If TRUE, results will be sorted in descending order, otherwise results will be sorted in ascending order. (OPTIONAL, defaults to TRUE) |
Definition at line 203 of file SearchEngine.php.
References DMsg().
SearchEngine::FieldedSearchWeightScale | ( | $SearchParams | ) |
Get total of weights for all fields involved in search, useful for assessing scale of scores in search results.
object | $SearchParams | Search parameters (SearchParameterSet). |
Definition at line 285 of file SearchEngine.php.
SearchEngine::FieldInKeywordSearch | ( | $FieldId | ) |
Get whether specified field is included in keyword searches.
int | $FieldId | ID of field. |
Definition at line 103 of file SearchEngine.php.
SearchEngine::FieldType | ( | $FieldId | ) |
Get type of specified field (text/numeric/date/daterange).
int | $FieldId | ID of field. |
Definition at line 83 of file SearchEngine.php.
SearchEngine::FieldWeight | ( | $FieldId | ) |
Get search weight for specified field.
int | $FieldId | ID of field. |
Definition at line 93 of file SearchEngine.php.
|
protected |
Filter search scores through any supplied functions.
array | $Scores | Current set of search scores. |
Definition at line 1563 of file SearchEngine.php.
References $ItemIdFieldName, DebugLevel(), and DMsg().
Referenced by SearchFieldForPhrases().
SearchEngine::GetAllSynonyms | ( | ) |
Get all synonyms.
Definition at line 568 of file SearchEngine.php.
|
protected |
Retrieve content for specified field for specified item.
int | $ItemId | ID of item. |
int | $FieldId | ID of field. |
Definition at line 1879 of file SearchEngine.php.
References DMsg().
Referenced by UpdateForItem().
SearchEngine::GetSynonyms | ( | $Word | ) |
Get synonyms for word.
string | $Word | Word for which synonyms should apply. |
Definition at line 530 of file SearchEngine.php.
SearchEngine::ItemCount | ( | ) |
Get total number of items indexed by search engine.
Definition at line 425 of file SearchEngine.php.
SearchEngine::LoadSynonymsFromFile | ( | $FileName | ) |
Load synonyms from a file.
Each line of file should contain one word at the beginning of the line, followed by one or more synonyms separated by spaces or commas. Blank lines or lines beginning with "#" (i.e. comments) will be ignored.
string | $FileName | Name of file containing synonyms (with path if needed). |
Definition at line 683 of file SearchEngine.php.
References AddSynonyms().
SearchEngine::NumberOfResults | ( | $ItemType = NULL | ) |
Get number of results found by most recent search.
int | $ItemType | Type of item. (OPTIONAL, defaults to total for all items) |
Definition at line 254 of file SearchEngine.php.
SearchEngine::RemoveAllSynonyms | ( | ) |
Remove all synonyms.
Definition at line 520 of file SearchEngine.php.
Referenced by SetAllSynonyms().
SearchEngine::RemoveSynonyms | ( | $Word, | |
$Synonyms = NULL |
|||
) |
Remove synonym(s).
string | $Word | Word for which synonyms should apply. |
array | $Synonyms | Array of synonyms to remove. If not specified, all synonyms for word will be removed. (OPTIONAL) |
Definition at line 478 of file SearchEngine.php.
SearchEngine::Search | ( | $SearchParams, | |
$StartingResult = 0 , |
|||
$NumberOfResults = PHP_INT_MAX , |
|||
$SortByField = NULL , |
|||
$SortDescending = TRUE |
|||
) |
Perform search with specified parameters.
mixed | $SearchParams | Search parameters as SearchParameterSet object or keyword search string. |
int | $StartingResult | Starting index into results. (OPTIONAL, defaults to 0) |
int | $NumberOfResults | Number of results to return. (OPTIONAL, defaults to PHP_INT_MAX) |
string | $SortByField | ID of field or array of IDs of fields (indexed by item type) to sort results by. (OPTIONAL, defaults to NULL, which indicates to sort by relevance score) |
mixed | $SortDescending | If TRUE, sort in descending order, otherwise sort in ascending order. May also be array of boolean values, with item types for the index. (OPTIONAL, defaults to TRUE) |
Definition at line 138 of file SearchEngine.php.
References DMsg().
Referenced by SPTSearchEngine\GroupedSearch().
|
protected |
Search for phrase in specified field.
string | $FieldId | ID of field to search. |
string | $Phrase | Phrase to search for. |
Definition at line 1242 of file SearchEngine.php.
References $DB, DMsg(), and FilterOnSuppliedFunctions().
SearchEngine::SearchTermCount | ( | ) |
Get total number of search terms indexed by search engine.
Definition at line 415 of file SearchEngine.php.
SearchEngine::SearchTerms | ( | ) |
Get normalized list of search terms.
Definition at line 265 of file SearchEngine.php.
SearchEngine::SearchTime | ( | ) |
Get time that last search took, in seconds.
Definition at line 274 of file SearchEngine.php.
References $LastSearchTime.
SearchEngine::SetAllSynonyms | ( | $SynonymList | ) |
Set all synonyms.
This removes any existing synonyms and replaces them with the synonyms passed in.
array | $SynonymList | Array of arrays of synonyms, with words for index. |
Definition at line 662 of file SearchEngine.php.
References AddSynonyms(), and RemoveAllSynonyms().
SearchEngine::UpdateForItem | ( | $ItemId, | |
$ItemType | |||
) |
Update search database for the specified item.
int | $ItemId | ID of item. |
int | $ItemType | Numerical type of item. |
Definition at line 317 of file SearchEngine.php.
References GetFieldContent().
Referenced by UpdateForItems().
SearchEngine::UpdateForItems | ( | $StartingItemId, | |
$NumberOfItems | |||
) |
Update search database for the specified range of items.
int | $StartingItemId | ID of item to start with. |
int | $NumberOfItems | Maximum number of items to update. |
Definition at line 369 of file SearchEngine.php.
References UpdateForItem().
|
protected |
Definition at line 723 of file SearchEngine.php.
Referenced by SPTSearchEngine\ConvertToDisplayParameters(), SPTSearchEngine\GetResultFacets(), and SearchFieldForPhrases().
|
protected |
Definition at line 724 of file SearchEngine.php.
|
protected |
Definition at line 725 of file SearchEngine.php.
|
protected |
Definition at line 726 of file SearchEngine.php.
Referenced by __construct(), and FilterOnSuppliedFunctions().
|
protected |
Definition at line 727 of file SearchEngine.php.
Referenced by __construct().
|
protected |
Definition at line 728 of file SearchEngine.php.
Referenced by __construct().
|
protected |
Definition at line 729 of file SearchEngine.php.
Referenced by SearchTime().
|
protected |
Definition at line 730 of file SearchEngine.php.
|
protected |
Definition at line 731 of file SearchEngine.php.
|
protected |
Definition at line 732 of file SearchEngine.php.
const SearchEngine::COMPARISON_OPERATOR_PATTERN = '/^([><=^$@]+|!=)([^><=^$@])/' |
Definition at line 2220 of file SearchEngine.php.
const SearchEngine::FIELDTYPE_DATE = 3 |
Definition at line 25 of file SearchEngine.php.
const SearchEngine::FIELDTYPE_DATERANGE = 4 |
Definition at line 26 of file SearchEngine.php.
const SearchEngine::FIELDTYPE_NUMERIC = 2 |
Definition at line 24 of file SearchEngine.php.
const SearchEngine::FIELDTYPE_TEXT = 1 |
Definition at line 23 of file SearchEngine.php.
const SearchEngine::KEYWORD_FIELD_ID = -100 |
Definition at line 743 of file SearchEngine.php.
const SearchEngine::LOGIC_AND = 1 |
const SearchEngine::LOGIC_OR = 2 |
Definition at line 20 of file SearchEngine.php.
Referenced by SearchParameterSet\Logic(), MetadataField\SearchGroupLogic(), and SavedSearch\TranslateUrlParametersToSearchGroups().
const SearchEngine::SEARCHLOGIC_AND = 1 |
Definition at line 2216 of file SearchEngine.php.
const SearchEngine::SEARCHLOGIC_OR = 2 |
Definition at line 2217 of file SearchEngine.php.
const SearchEngine::STEM_ID_OFFSET = 1000000 |
Definition at line 744 of file SearchEngine.php.
const SearchEngine::WORD_EXCLUDED = 2 |
Definition at line 30 of file SearchEngine.php.
const SearchEngine::WORD_PRESENT = 1 |
Definition at line 29 of file SearchEngine.php.
const SearchEngine::WORD_REQUIRED = 4 |
Definition at line 31 of file SearchEngine.php.