fulltext_postgres
class fulltext_postgres extends base implements search_backend_interface
Fulltext search for PostgreSQL
Constants
SEARCH_RESULT_NOT_IN_CACHE |
|
SEARCH_RESULT_IN_CACHE |
|
SEARCH_RESULT_INCOMPLETE |
|
private BATCH_SIZE |
|
Properties
protected service | $cache | from base | |
protected config | $config | from base | |
protected driver_interface | $db | from base | |
protected user | $user | from base | |
protected array | $stats | Associative array holding index stats |
|
protected array | $split_words | Holds the words entered by user, obtained by splitting the entered query on whitespace |
|
protected string | $tsearch_query | Stores the tsearch query |
|
protected bool | $phrase_search | True if phrase search is supported. |
|
protected dispatcher_interface | $phpbb_dispatcher | phpBB event dispatcher object |
|
protected language | $language | ||
protected string | $search_query | Contains tidied search query. |
|
protected array | $common_words | Contains common words. |
|
protected array | $word_length | Associative array stores the min and max word length to be searched |
Methods
Constructor Creates a new \phpbb\search\backend\fulltext_postgres, which is used as a search backend
Retrieves cached search results
Caches post/topic ids
Removes old entries from the search results table and removes searches with keywords that contain a word in $words.
Create fulltext index
Drop fulltext index
Return the ids of the forums that have indexing enabled
Returns the name of this search backend to be displayed to administrators
Returns if the search engine is available
Method executed when a search backend is set from acp.
Returns the search_query
Returns the common_words array
Returns the word_length array
Splits keywords entered by a user into an array of words stored in $this->split_words This function fills $this->search_query with the cleaned user search query
Performs a search on keywords depending on display specific params. You have to run split_keywords() first
Performs a search on an author's posts without caring about message contents. Depends on display specific params
Returns if phrase search is supported or not
Updates wordlist and wordmatch tables when a message is posted or changed Destroys cached search results, that contained one of the new words in a post so the results won't be outdated
Destroy cached results, that might be outdated after deleting a post
Destroy old cache entries
Returns true if both FULLTEXT indexes exist
Returns an associative array containing information about the indexes
{@inheritdoc}
Turns text into an array of words
Display various options that can be configured for the backend from the acp
Details
at line 95
__construct(config $config, driver_interface $db, dispatcher_interface $phpbb_dispatcher, language $language, user $user, string $phpbb_root_path, string $phpEx)
Constructor Creates a new \phpbb\search\backend\fulltext_postgres, which is used as a search backend
in
base at line 82
protected int
obtain_ids(string $search_key, int $result_count, array $id_ary, int $start, int $per_page, string $sort_dir)
Retrieves cached search results
in
base at line 161
protected void
save_ids(string $search_key, string $keywords, array $author_ary, int $result_count, array $id_ary, int $start, string $sort_dir)
Caches post/topic ids
in
base at line 271
protected void
destroy_cache(array $words, array|bool $authors = false)
Removes old entries from the search results table and removes searches with keywords that contain a word in $words.
at line 869
array|null
create_index(int $post_counter = 0)
Create fulltext index
at line 928
array|null
delete_index(int $post_counter = null)
Drop fulltext index
in
base at line 425
protected array
forum_ids_with_indexing_enabled()
Return the ids of the forums that have indexing enabled
in
base at line 451
protected Generator
get_posts_batch_after(int $post_id)
Get batch of posts after id
in
base at line 470
protected int
get_max_post_id()
Get post with higher id
in
base at line 484
string
get_type()
Gets backend class
at line 117
string
get_name()
Returns the name of this search backend to be displayed to administrators
at line 125
bool
is_available()
Returns if the search engine is available
at line 133
string|false
init()
Method executed when a search backend is set from acp.
Checks permissions and paths, if everything is correct it generates the config file
at line 146
string
get_search_query()
Returns the search_query
at line 154
array
get_common_words()
Returns the common_words array
at line 162
array|false
get_word_length()
Returns the word_length array
at line 170
bool
split_keywords(string $keywords, string $terms)
Splits keywords entered by a user into an array of words stored in $this->split_words This function fills $this->search_query with the cleaned user search query
If $terms is 'any' then the words will be extracted from the search query and combined with | inside brackets. They will afterwards be treated like an standard search query.
Then it analyses the query and fills the internal arrays $must_not_contain_ids, $must_contain_ids and $must_exclude_one_ids which are later used by keyword_search()
at line 261
bool|int
keyword_search(string $type, string $fields, string $terms, array $sort_by_sql, string $sort_key, string $sort_dir, string $sort_days, array $ex_fid_ary, string $post_visibility, int $topic_id, array $author_ary, string $author_name, array $id_ary, int $start, int $per_page)
Performs a search on keywords depending on display specific params. You have to run split_keywords() first
at line 525
bool|int
author_search(string $type, bool $firstpost_only, array $sort_by_sql, string $sort_key, string $sort_dir, string $sort_days, array $ex_fid_ary, string $post_visibility, int $topic_id, array $author_ary, string $author_name, array $id_ary, int $start, int $per_page)
Performs a search on an author's posts without caring about message contents. Depends on display specific params
at line 794
bool
supports_phrase_search()
Returns if phrase search is supported or not
at line 802
index(string $mode, int $post_id, string $message, string $subject, int $poster_id, int $forum_id)
Updates wordlist and wordmatch tables when a message is posted or changed Destroys cached search results, that contained one of the new words in a post so the results won't be outdated
at line 850
void
index_remove(array $post_ids, array $author_ids, array $forum_ids)
Destroy cached results, that might be outdated after deleting a post
at line 858
void
tidy()
Destroy old cache entries
at line 987
bool
index_created()
Returns true if both FULLTEXT indexes exist
at line 1000
array|false
index_stats()
Returns an associative array containing information about the indexes
at line 1015
protected
get_stats()
{@inheritdoc}
at line 1060
protected array
split_message(string $text)
Turns text into an array of words
at line 1085
array
get_acp_options()
Display various options that can be configured for the backend from the acp