Структура таблиц базы данных
WP Fast Total Search (WPFTS)
использует несколько таблиц в базе данных WordPress для хранения поискового индекса и другой информации, необходимой для работы плагина. Префикс таблиц по умолчанию — wpftsi_
, но он может быть изменен в зависимости от настроек WordPress Multisite. Если в вашей сети WordPress Multisite есть блог с ID, отличным от 1, префикс таблиц будет выглядеть как wpftsi_{blog_id}_
. Получить префикс таблиц можно с помощью метода WPFTS_Core::dbprefix()
.
Вот описание каждой таблицы:
-
wpftsi_docs: Хранит информацию о документах (постах, страницах и т.д.), которые были проиндексированы.
-
id (int)
: Уникальный идентификатор записи. Первичный ключ, автоинкремент. -
index_id (int)
: ID записи в таблицеwpftsi_index
. Внешний ключ. -
token (varchar(255)): Название кластера (например, post_title, post_content).
-
n (int unsigned): Количество слов в кластере для данного документа.
-
-
wpftsi_index: Хранит основную информацию о проиндексированных записях.
-
id (int unsigned): Уникальный идентификатор записи. Первичный ключ, автоинкремент.
-
tid (bigint unsigned): ID поста или другого объекта в WordPress.
-
tsrc (varchar(255)): Источник данных (например, wp_posts).
-
tdt (datetime): Дата и время последнего изменения поста.
-
build_time (int): Временная метка индексации поста. 0 - не проиндексировано. 9999 - в процессе. >10000 - проиндексировано.
-
update_dt (datetime): Дата и время последнего обновления записи в индексе.
-
force_rebuild (tinyint): Флаг, указывающий на необходимость переиндексации (0 - нет, 1 - да, 2 - высокий приоритет).
-
locked_dt (datetime): Дата и время блокировки записи (для предотвращения одновременной индексации).
-
rules_idset (varchar(255)): Набор ID правил индексации, примененных к данному посту.
-
-
wpftsi_stops: Хранит список стоп-слов, которые игнорируются при индексации.
-
id (int unsigned): Уникальный идентификатор записи. Первичный ключ, автоинкремент.
-
word (varchar(255)): Стоп-слово.
-
-
wpftsi_vectors: Хранит информацию о встречаемости слов в документах.
-
wid (int): ID слова в таблице wpftsi_words. Часть составного первичного ключа.
-
did (int): ID документа в таблице wpftsi_docs. Часть составного первичного ключа.
-
wn (int): Позиция слова в документе.
-
-
wpftsi_words: Хранит словарь всех слов, найденных в проиндексированных документах.
-
id (int): Уникальный идентификатор слова. Первичный ключ, автоинкремент.
-
word (varchar(255)): Само слово.
-
act (int): Число документов, в которых встречается это слово. -1 - данные устарели и необходимо обновить кеш.
-
-
wpftsi_tw: Временная таблица для хранения слов и их позиций перед добавлением в wpftsi_vectors.
-
id (int): Уникальный идентификатор записи. Первичный ключ, автоинкремент.
-
w (varchar(255)): Слово.
-
did (int): ID документа.
-
wn (int): Позиция слова в документе.
-
-
wpftsi_vc: (Vector Cache) Хранит кешированные векторы слов для оптимизации поиска.
-
id (int): Уникальный идентификатор записи. Первичный ключ, автоинкремент.
-
wid (int): ID слова.
-
upd_dt (datetime): Дата и время последнего обновления кеша.
-
vc (longblob): Бинарные данные вектора.
-
-
wpftsi_tp: (Temporary/permanent Relevance) Хранит промежуточные результаты расчета релевантности.
-
id (bigint unsigned): Уникальный идентификатор записи. Первичный ключ, автоинкремент.
-
q_id (int): ID поискового запроса в таблице wpftsi_qlog.
-
did (int): ID документа.
-
pow (int): “Сила” документа.
-
res (float): Релевантность документа.
-
ts (timestamp): Время создания записи.
-
-
wpftsi_qlog: Хранит лог поисковых запросов.
-
id (int): Уникальный идентификатор запроса. Первичный ключ, автоинкремент.
-
query (longtext): Поисковый запрос.
-
query_type (varchar(255)): Тип запроса (например, wpmainsearch_admin, wpmainsearch_frontend).
-
preset (varchar(255)): Использованный пресет.
-
widget_name (varchar(255)): Имя виджета (если запрос был выполнен через виджет).
-
n_results (int): Количество найденных результатов.
-
q_time (float): Время выполнения запроса.
-
max_ram (bigint): Максимальное количество использованной памяти.
-
user_id (bigint): ID пользователя, выполнившего запрос.
-
req_ip (varchar(40)): IP-адрес пользователя.
-
ref_url (text): URL страницы, с которой был выполнен запрос.
-
insert_dt (datetime): Дата и время запроса.
-
wpq_params (longtext): JSON-encoded параметры запроса WP_Query.
-
ext (longtext): Дополнительные данные (лог).
-
-
wpftsi_map: Хранит соответствие между постами и другими объектами (например, файлами). Используется для индексации данных, связанных с постами, но хранящихся в других таблицах.
-
id (bigint unsigned): Уникальный идентификатор записи. Первичный ключ, автоинкремент.
-
post_id (bigint unsigned): ID поста в WordPress.
-
obj_id (bigint unsigned): ID внешнего объекта.
-
obj_type (varchar(50)): Тип внешнего объекта.
-
-
wpftsi_queue: Очередь задач для индексатора. Не используется в текущей версии плагина.
-
id (bigint unsigned): Уникальный идентификатор задачи. Первичный ключ, автоинкремент.
-
post_id (bigint unsigned): ID поста.
-
remark (varchar(255)): Дополнительная информация о задаче.
-
insert_dt (datetime): Дата и время добавления задачи в очередь.
-
-
wpftsi_rawcache: Кеш необработанных данных, извлеченных из постов и других источников. Используется для ускорения индексации.
-
id (int unsigned): Уникальный идентификатор записи. Первичный ключ, автоинкремент.
-
object_id (bigint): ID объекта в WordPress.
-
object_type (varchar(150)): Тип объекта (например, wp_post).
-
cached_dt (datetime): Дата и время последнего изменения объекта.
-
insert_dt (datetime): Дата и время добавления данных в кеш.
-
method_id (varchar(150)): Идентификатор метода, которым были получены данные.
-
data (longtext): Сериализованные данные.
-
error (text): Информация об ошибке (если возникла).
-
filename (text): Имя файла (для вложений).
-
-
wpftsi_ilog: (Indexer Log) Хранит лог работы индексатора.
-
id (int unsigned): Уникальный идентификатор записи. Первичный ключ, автоинкремент.
-
index_id (int unsigned): ID записи в таблице wpftsi_index.
-
start_ts (double): Временная метка начала индексации.
-
getpost_ts (double): Время, затраченное на получение данных поста.
-
clusters_ts (double): Время, затраченное на обработку кластеров.
-
cluster_stats (longtext): Статистика по кластерам (размер данных).
-
reindex_ts (double): Общее время индексации.
-
status (int): Статус индексации.
-
error (longtext): Информация об ошибке.
-
-
wpftsi_irules: Хранит правила индексации.
-
id (int unsigned): Уникальный идентификатор правила. Первичный ключ, автоинкремент.
-
ident (varchar(130)): Уникальный идентификатор правила (slug).
-
filter_hash (varchar(50)): Хэш условия фильтра.
-
act_hash (varchar(50)): Хэш действий правила.
-
rule_snap (longtext): JSON-encoded данные правила.
-
clone_id (int): ID родительского правила (для клонированных правил).
-
filter_sql (longtext): SQL-код условия фильтра.
-
is_valid (int): Флаг, указывающий, является ли правило корректным.
-
error_msg (longtext): Сообщение об ошибке (если есть).
-
ord (int): Порядок выполнения правила.
-
type (int): Тип правила (0 - базовое, 1 - пользовательское, 2 - финальное, 3 - временное).
-
insert_dt (datetime): Дата и время создания правила.
-
-
wpftsi_doctree: Хранит информацию о вложенных данных. Используется для индексации содержимого, которое связано с постом опосредованно, например, через другой пост или объект.
-
id (int unsigned): Уникальный идентификатор записи. Первичный ключ, автоинкремент.
-
p_tid (bigint unsigned): ID родительского объекта.
-
p_tsrc (varchar(255)): Источник родительского объекта.
-
p_token (varchar(255)): Кластер родительского объекта.
-
c_tid (bigint unsigned): ID дочернего объекта.
-
c_tsrc (varchar(255)): Источник дочернего объекта.
-
c_token (varchar(255)): Кластер дочернего объекта.
-
Более подробная информация о каждой таблице и ее полях представлена в документации по API плагина. Разработчикам аддонов важно понимать структуру таблиц WPFTS для корректной интеграции с плагином.