<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>https://wiki.dzmuh.com/index.php?action=history&amp;feed=atom&amp;title=GiST</id>
	<title>GiST - История изменений</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.dzmuh.com/index.php?action=history&amp;feed=atom&amp;title=GiST"/>
	<link rel="alternate" type="text/html" href="https://wiki.dzmuh.com/index.php?title=GiST&amp;action=history"/>
	<updated>2026-05-05T18:51:04Z</updated>
	<subtitle>История изменений этой страницы в вики</subtitle>
	<generator>MediaWiki 1.38.4</generator>
	<entry>
		<id>https://wiki.dzmuh.com/index.php?title=GiST&amp;diff=12432&amp;oldid=prev</id>
		<title>Dzmuh: Новая страница: «'''GiST''' ({{lang-en|Generalized Search Tree}}, Обобщенное поисковое дерево) — структура индекса, которая является обобщенной разновидностью R-tree и предоставляет стандартные методы навигации по дереву и его обновления (расщепление и удаление...»</title>
		<link rel="alternate" type="text/html" href="https://wiki.dzmuh.com/index.php?title=GiST&amp;diff=12432&amp;oldid=prev"/>
		<updated>2023-05-04T22:45:45Z</updated>

		<summary type="html">&lt;p&gt;Новая страница: «&amp;#039;&amp;#039;&amp;#039;GiST&amp;#039;&amp;#039;&amp;#039; ({{lang-en|Generalized Search Tree}}, Обобщенное поисковое дерево) — структура индекса, которая является обобщенной разновидностью &lt;a href=&quot;/index.php?title=R-%D0%B4%D0%B5%D1%80%D0%B5%D0%B2%D0%BE_(%D1%81%D1%82%D1%80%D1%83%D0%BA%D1%82%D1%83%D1%80%D0%B0_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85)&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;R-дерево (структура данных) (страница не существует)&quot;&gt;R-tree&lt;/a&gt; и предоставляет стандартные методы навигации по дереву и его обновления (расщепление и удаление...»&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;'''GiST''' ({{lang-en|Generalized Search Tree}}, Обобщенное поисковое дерево) — структура индекса, которая является обобщенной разновидностью [[R-дерево (структура данных)|R-tree]] и предоставляет стандартные методы навигации по дереву и его обновления (расщепление и удаление узлов). GiST представляет собой сбалансированное (по высоте) дерево, концевые узлы (листья) которого содержат пары (key, rid), где key — ключ, а rid — указатель на соответствующую запись на странице данных. Внутренние узлы содержат пары (p, ptr), где p — это некий предикат (используется как поисковый ключ), выполняющийся для *всех* наследных узлов, а ptr — указатель на другой узел в дереве. Для этого дерева определены базовые методы SEARCH, INSERT, DELETE, и интерфейс для написания пользовательских методов, которыми можно управлять работой этих (базовых) методов.&lt;br /&gt;
&lt;br /&gt;
Метод SEARCH управляется функцией Consistent, возвращающая 'true', если узел удовлетворяет предикату, метод INSERT — функциями penalty, picksplit и union, которые позволяют оценить сложность операции вставки в узел, разделить узел при переполнении и перестроить дерево при необходимости, метод DELETE находит лист дерева, содержащий ключ, удаляет пару (key, rid) и, если нужно, с помощью функции union перестраивает родительские узлы&amp;lt;ref&amp;gt;{{Cite web|url=http://www.sai.msu.su/~megera/postgres/talks/gist_tutorial.html|title=Написание расширений для PostgreSQL с использованием GiST|publisher=www.sai.msu.su|accessdate=2017-11-13|archive-date=2017-11-08|archive-url=https://web.archive.org/web/20171108143906/http://www.sai.msu.su/~megera/postgres/talks/gist_tutorial.html|deadlink=no}}&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
GiST является прямым [[Индекс (базы данных)|индексом]], используемым полнотекстовым поиском [[СУБД]] [[PostgreSQL]]. Это означает, что для каждого вектора tsvector, описывающего все лексемы документа, создаётся сигнатура, описывающая, какие из лексем входят в данный tsvector. Принцип работы схож с битовыми индексами, однако есть и различия.&lt;br /&gt;
&lt;br /&gt;
Продемонстрируем на примере: пусть лексеме w1 сопоставлена сигнатура 001000, лексеме w2 — 000010. Тогда документу, содержащему только лексемы w1 и w2, будет сопоставлена сигнатура 001010 (001000 | 000010). В отличие от битовых индексов, отображение лексем в сигнатуры не однозначно, то есть возможно существование лексемы w3 с сигнатурой 001000. Это позволяет значительно экономить на размере индекса, но требует вторичной проверки на полное совпадение лексем запроса и документа.&lt;br /&gt;
&lt;br /&gt;
Стоит также обратить внимание, что в случае, если лексема запроса имеет сигнатуру, к примеру, 000001, то документ с сигнатурой 001010 однозначно её не содержит, несмотря на неоднозначность отображения лексем.&lt;br /&gt;
&lt;br /&gt;
Преимущество GiST в его скорости создания и размере индекса в сравнении с GiN (в 3 раза), потому он предпочтительнее для динамически постоянно обновляемых данных. Для статических данных или которые редко обновляются предпочтительнее GiN индекс (он в 3 раза быстрее производит поиск)&amp;lt;ref&amp;gt;{{Cite web|url=http://bamboolab.eu/blog/rails-postgresql-index-btree-gin-gist|title=Experimenting With Indexes - How Important Are They? {{!}} Bamboo Lab|author=Marko Ćilimković|publisher=bamboolab.eu|accessdate=2018-01-07|archive-date=2018-01-08|archive-url=https://web.archive.org/web/20180108062750/http://bamboolab.eu/blog/rails-postgresql-index-btree-gin-gist|deadlink=no}}&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Примечания ==&lt;br /&gt;
{{примечания}}&lt;br /&gt;
&lt;br /&gt;
== Источники ==&lt;br /&gt;
* {{cite web&lt;br /&gt;
 |url         = http://www.sai.msu.su/~megera/postgres/talks/fts_pgsql_intro.html&lt;br /&gt;
 |title         = Введение в полнотекстовый поиск в PostgreSQL&lt;br /&gt;
 |deadurl         = yes&lt;br /&gt;
 |accessdate         = 2010-05-23&lt;br /&gt;
 |archive-date         = 2012-06-19&lt;br /&gt;
 |archive-url         = https://web.archive.org/web/20120619005254/http://www.sai.msu.su/~megera/postgres/talks/fts_pgsql_intro.html&lt;br /&gt;
 }}&lt;br /&gt;
* {{Cite web|url=http://www.sai.msu.su/~megera/postgres/talks/gist_tutorial.html|title=Написание расширений для PostgreSQL с использованием GiST|author=|website=|date=|publisher=}}&lt;br /&gt;
&lt;br /&gt;
== Ссылки ==&lt;br /&gt;
{{википедия|GiST}}&lt;br /&gt;
&lt;br /&gt;
[[Категория:Техники индексации данных]]&lt;br /&gt;
[[Категория:SQL]]&lt;br /&gt;
[[Категория:PostgreSQL]]&lt;/div&gt;</summary>
		<author><name>Dzmuh</name></author>
	</entry>
</feed>