SNIPPET_TITLE_LENGTH
SNIPPET_TITLE_LENGTH
This is class is used to handle getting and saving the Profile.php of the current search engine instance
__construct(string $db_name = \seekquarry\yioop\configs\DB_NAME, boolean $connect = true)
Sets up the database manager that will be used and name of the search engine database
string | $db_name | the name of the database for the search engine |
boolean | $connect | whether to connect to the database by default after making the datasource class |
fileGetContents(string $filename, boolean $force_read = false) : string
Either a wrapper for file_get_contents, or if a WebSite object is being used to serve pages, it reads it in using blocking I/O file_get_contents() and caches it before return its string contents.
Note this function assumes that only the web server is performing I/O with this file. filemtime() can be used to see if a file on disk has been changed and then you can use $force_read = true below to force re- reading the file into the cache
string | $filename | name of file to get contents of |
boolean | $force_read | whether to force the file to be read from presistent storage rather than the cache |
contents of the file given by $filename
filePutContents(string $filename, string $data)
Either a wrapper for file_put_contents, or if a WebSite object is being used to serve pages, writes $data to the persistent file with name $filename. Saves a copy in the RAM cache if there is a copy already there.
string | $filename | name of file to write to persistent storages |
string | $data | string of data to store in file |
formatSinglePageResult(array $page, array $words = null, integer $description_length = self::DEFAULT_DESCRIPTION_LENGTH) : array
Given a page summary, extracts snippets which are related to a set of search words. For each snippet, bold faces the search terms, and then creates a new summary array.
array | $page | a single search result summary |
array | $words | keywords (typically what was searched on) |
integer | $description_length | length of the description |
$page which has been snippified and bold faced
getSnippets(string $text, array $words, string $description_length) : string
Given a string, extracts a snippets of text related to a given set of key words. For a given word a snippet is a window of characters to its left and right that is less than a maximum total number of characters.
There is also a rule that a snippet should avoid ending in the middle of a word
string | $text | haystack to extract snippet from |
array | $words | keywords used to make look in haystack |
string | $description_length | length of the description desired |
a concatenation of the extracted snippets of each word
boldKeywords(string $text, array $words) : string
Given a string, wraps in bold html tags a set of key words it contains.
string | $text | haystack string to look for the key words |
array | $words | an array of words to bold face |
the resulting string after boldfacing has been applied
isSingleLocalhost(array $machine_urls, string $index_timestamp = -1) : boolean
Used to determine if an action involves just one yioop instance on the current local machine or not
array | $machine_urls | urls of yioop instances to which the action applies |
string | $index_timestamp | if timestamp exists checks if the index has declared itself to be a no network index. |
whether it involves a single local yioop instance (true) or not (false)
searchArrayToWhereOrderClauses(array $search_array, array $any_fields = array('status')) : array
Creates the WHERE and ORDER BY clauses for a query of a Yioop table such as USERS, ROLE, GROUP, which have associated search web forms. Searches are case insensitive
array | $search_array | each element of this is a quadruple name of a field, what comparison to perform, a value to check, and an order (ascending/descending) to sort by |
array | $any_fields | these fields if present in search array but with value "-1" will be skipped as part of the where clause but will be used for order by clause |
string for where clause, string for order by clause
getRows(integer $limit, integer $num, \seekquarry\yioop\models\int& $total, array $search_array = array(), array $args = null) : array
Gets a range of rows which match the provided search criteria from $th provided table
integer | $limit | starting row from the potential results to return |
integer | $num | number of rows after start row to return |
\seekquarry\yioop\models\int& | $total | gets set with the total number of rows that can be returned by the given database query |
array | $search_array | each element of this is a quadruple name of a field, what comparison to perform, a value to check, and an order (ascending/descending) to sort by |
array | $args | additional values which may be used to get rows (what these are will typically depend on the subclass implementation) |
selectCallback(mixed $args = null) : string
Controls which columns and the names of those columns from the tables underlying the given model should be return from a getRows call.
This defaults to *, but in general will be overriden in subclasses of Model
mixed | $args | any additional arguments which should be used to determine the columns |
a comma separated list of columns suitable for a SQL query
fromCallback(mixed $args = null) : string
Controls which tables and the names of tables underlie the given model and should be used in a getRows call This defaults to the single table whose name is whatever is before Model in the name of the model. For example, by default on FooModel this method would return "FOO". If a different behavior, this can be overriden in subclasses of Model
mixed | $args | any additional arguments which should be used to determine these tables |
a comma separated list of tables suitable for a SQL query
whereCallback(mixed $args = null) : string
Controls the WHERE clause of the SQL query that underlies the given model and should be used in a getRows call.
This defaults to an empty WHERE clause.
mixed | $args | additional arguments that might be used to construct the WHERE clause. |
a SQL WHERE clause
rowCallback(array $row, mixed $args) : array
Called after as row is retrieved by getRows from the database to perform some manipulation that would be useful for this model.
For example, in CrawlModel, after a row representing a crawl mix has been gotten, this is used to perform an additional query to marshal its components. By default this method just returns this row unchanged.
array | $row | row as retrieved from database query |
mixed | $args | additional arguments that might be used by this callback |
$row after callback manipulation
postQueryCallback(array $rows) : array
Called after getRows has retrieved all the rows that it would retrieve but before they are returned to give one last place where they could be further manipulated. For example, in MachineModel this callback is used to make parallel network calls to get the status of each machine returned by getRows. The default for this method is to leave the rows that would be returned unchanged
array | $rows | that have been calculated so far by getRows |
$rows after this final manipulation
initializeSql(object $dbm, array $dbinfo)
Used to construct $this->create_statements, the list of all SQL CREATE statements needed to build a Yioop database
object | $dbm | a datasource_manager object used to get strings for autoincrement and serial types for a given db |
array | $dbinfo | connect info for the database, also used in getting autoincrement and serial types |
initializeSqlPrivate(object $dbm, array $dbinfo)
Used to construct $this->private_create_statements, the list of all SQL CREATE statements needed to build Yioop private database
object | $dbm | a datasource_manager object used to get strings for autoincrement and serial types for a given db |
array | $dbinfo | connect info for the database, also used in getting autoincrement and serial types |
makeWorkDirectory(string $directory)
Creates a folder to be used to maintain local information about this instance of the Yioop/SeekQuarry engine
Creates the directory provides as well as subdirectories for crawls, locales, logging, and sqlite DBs.
string | $directory | parth and name of directory to create |
updateProfile(string $directory, array $new_profile_data, array $old_profile_data, boolean $reset = false)
Outputs a Profile.php file in the given directory containing profile data based on new and old data sources
This function creates a Profile.php file if it doesn't exist. A given field is output in the profile according to the precedence that a new value is preferred to an old value is prefered to the value that comes from a currently defined constant. It might be the case that a new value for a given field doesn't exist, etc.
string | $directory | the work directory to output the Profile.php file |
array | $new_profile_data | fields and values containing at least some profile information (only $this->profile_fields fields of $new_profile_data will be considered). |
array | $old_profile_data | fields and values that come from presumably a previously existing profile |
boolean | $reset | whether the new profile data is coming from a reset to factory settings or not |
migrateDatabaseIfNecessary(array $dbinfo, array $skip_list = array()) : boolean
Check if $dbinfo provided the connection details for a Yioop/SeekQuarry database. If it does provide a valid db connection but no data then try to recreate the database from the default copy stored in /data dir.
array | $dbinfo | has fields for DBMS, DB_USER, DB_PASSWORD, DB_HOST and DB_NAME |
array | $skip_list | an array of table or index names not to bother creating or copying |
returns true if can connect to/create a valid database; returns false otherwise
createDatabaseTables(object $dbm, array $dbinfo, array $skip_list = array()) : boolean
On a blank database this method create all the tables necessary for Yioop less those on a skip list
object | $dbm | a DatabaseManager open to some DBMS and with a blank database selected |
array | $dbinfo | name of database, host, user, and password |
array | $skip_list | an array of table or index names not to bother creating |
whether all of the creates were successful or not
createDatabaseTablesPrivate(object $dbm, array $dbinfo, array $skip_list = array()) : boolean
On a blank database this method create all the tables necessary for private Yioop less those on a skip list
object | $dbm | a DatabaseManager open to some DBMS and with a blank database selected |
array | $dbinfo | name of database, host, user, and password |
array | $skip_list | an array of table or index names not to bother creating |
whether all of the creates were successful or not
testDatabaseManager(array $dbinfo) : mixed
Checks if $dbinfo provides info to connect to an working instance of app db.
array | $dbinfo | has field for DBMS, DB_USER, DB_PASSWORD, DB_HOST and DB_NAME |
returns true if can connect to DBMS with username and password, can select the given database name and that database seems to be of Yioop/SeekQuarry type. If the connection works but database isn't there it attempts to create it. If the database is there but no data, then it returns a resource for the database. Otherwise, it returns false.
matchDefine(string $defined, string $string) : string
Finds the first occurrence of define('$defined', something) in $string and returns something
string | $defined | the constant being defined |
string | $string | the haystack string to search in |
matched value of define if exists; empty string otherwise