Commit bcbb402e authored by Teodor Sigaev's avatar Teodor Sigaev

Improve wordings by David Fuhry <dfuhry@cs.kent.edu>

parent 18a96377
<!-- $PostgreSQL: pgsql/doc/src/sgml/config.sgml,v 1.87 2006/09/16 00:30:12 momjian Exp $ --> <!-- $PostgreSQL: pgsql/doc/src/sgml/config.sgml,v 1.88 2006/09/18 12:11:36 teodor Exp $ -->
<chapter Id="runtime-config"> <chapter Id="runtime-config">
<title>Server Configuration</title> <title>Server Configuration</title>
...@@ -2180,7 +2180,7 @@ SELECT * FROM parent WHERE key = 2400; ...@@ -2180,7 +2180,7 @@ SELECT * FROM parent WHERE key = 2400;
</indexterm> </indexterm>
<listitem> <listitem>
<para> <para>
Soft upper limit of the size of the returned set by GIN index. For more Soft upper limit of the size of the set returned by GIN index. For more
information see <xref linkend="gin-tips">. information see <xref linkend="gin-tips">.
</para> </para>
</listitem> </listitem>
......
<!-- $PostgreSQL: pgsql/doc/src/sgml/gin.sgml,v 2.3 2006/09/14 21:15:07 tgl Exp $ --> <!-- $PostgreSQL: pgsql/doc/src/sgml/gin.sgml,v 2.4 2006/09/18 12:11:36 teodor Exp $ -->
<chapter id="GIN"> <chapter id="GIN">
<title>GIN Indexes</title> <title>GIN Indexes</title>
...@@ -14,7 +14,7 @@ ...@@ -14,7 +14,7 @@
<para> <para>
<acronym>GIN</acronym> stands for Generalized Inverted Index. It is <acronym>GIN</acronym> stands for Generalized Inverted Index. It is
an index structure storing a set of (key, posting list) pairs, where an index structure storing a set of (key, posting list) pairs, where
'posting list' is a set of rows in which the key occurs. The 'posting list' is a set of rows in which the key occurs. Each
row may contain many keys. row may contain many keys.
</para> </para>
...@@ -104,7 +104,8 @@ ...@@ -104,7 +104,8 @@
<listitem> <listitem>
<para> <para>
Returns an array of keys of the query to be executed. n contains Returns an array of keys of the query to be executed. n contains
strategy number of operation (see <xref linkend="xindex-strategies">). the strategy number of the operation
(see <xref linkend="xindex-strategies">).
Depending on n, query may be different type. Depending on n, query may be different type.
</para> </para>
</listitem> </listitem>
...@@ -114,9 +115,9 @@ ...@@ -114,9 +115,9 @@
<term>bool consistent( bool check[], StrategyNumber n, Datum query)</term> <term>bool consistent( bool check[], StrategyNumber n, Datum query)</term>
<listitem> <listitem>
<para> <para>
Returns TRUE if indexed value satisfies query qualifier with strategy n Returns TRUE if the indexed value satisfies the query qualifier with
(or may satisfy in case of RECHECK mark in operator class). strategy n (or may satisfy in case of RECHECK mark in operator class).
Each element of the check array is TRUE if indexed value has a Each element of the check array is TRUE if the indexed value has a
corresponding key in the query: if (check[i] == TRUE ) the i-th key of corresponding key in the query: if (check[i] == TRUE ) the i-th key of
the query is present in the indexed value. the query is present in the indexed value.
</para> </para>
...@@ -135,10 +136,10 @@ ...@@ -135,10 +136,10 @@
<term>Create vs insert</term> <term>Create vs insert</term>
<listitem> <listitem>
<para> <para>
In most cases, insertion into <acronym>GIN</acronym> index is slow because In most cases, insertion into <acronym>GIN</acronym> index is slow
many GIN keys may be inserted for each table row. So, when loading data due to the likelihood of many keys being inserted for each value.
in bulk it may be useful to drop index and recreate it So, for bulk insertions into a table it is advisable to to drop the GIN
after the data is loaded in the table. index and recreate it after finishing bulk insertion.
</para> </para>
</listitem> </listitem>
</varlistentry> </varlistentry>
...@@ -147,7 +148,7 @@ ...@@ -147,7 +148,7 @@
<term>gin_fuzzy_search_limit</term> <term>gin_fuzzy_search_limit</term>
<listitem> <listitem>
<para> <para>
The primary goal of development <acronym>GIN</acronym> indices was The primary goal of developing <acronym>GIN</acronym> indices was
support for highly scalable, full-text search in support for highly scalable, full-text search in
<productname>PostgreSQL</productname> and there are often situations when <productname>PostgreSQL</productname> and there are often situations when
a full-text search returns a very large set of results. Since reading a full-text search returns a very large set of results. Since reading
...@@ -182,16 +183,16 @@ ...@@ -182,16 +183,16 @@
<title>Limitations</title> <title>Limitations</title>
<para> <para>
<acronym>GIN</acronym> doesn't support full scan of index due to it's <acronym>GIN</acronym> doesn't support full index scans due to their
extremely inefficiency: because of a lot of keys per value, extremely inefficiency: because there are often many keys per value,
each heap pointer will returned several times. each heap pointer will returned several times.
</para> </para>
<para> <para>
When extractQuery returns zero number of keys, <acronym>GIN</acronym> will When extractQuery returns zero keys, <acronym>GIN</acronym> will emit a
emit a error: for different opclass and strategy semantic meaning of void error: for different opclasses and strategies the semantic meaning of a void
query may be different (for example, any array contains void array, query may be different (for example, any array contains the void array,
but they aren't overlapped with void one), and <acronym>GIN</acronym> can't but they don't overlap the void array), and <acronym>GIN</acronym> can't
suggest reasonable answer. suggest reasonable answer.
</para> </para>
......
<!-- $PostgreSQL: pgsql/doc/src/sgml/indices.sgml,v 1.63 2006/09/16 00:30:14 momjian Exp $ --> <!-- $PostgreSQL: pgsql/doc/src/sgml/indices.sgml,v 1.64 2006/09/18 12:11:36 teodor Exp $ -->
<chapter id="indexes"> <chapter id="indexes">
<title id="indexes-title">Indexes</title> <title id="indexes-title">Indexes</title>
...@@ -248,7 +248,7 @@ CREATE INDEX <replaceable>name</replaceable> ON <replaceable>table</replaceable> ...@@ -248,7 +248,7 @@ CREATE INDEX <replaceable>name</replaceable> ON <replaceable>table</replaceable>
<see>index</see> <see>index</see>
</indexterm> </indexterm>
GIN is a inverted index and it's usable for values which have more GIN is a inverted index and it's usable for values which have more
than one key, arrays for example. Like to GiST, GIN may support than one key, arrays for example. Like GiST, GIN may support
many different user-defined indexing strategies and the particular many different user-defined indexing strategies and the particular
operators with which a GIN index can be used vary depending on the operators with which a GIN index can be used vary depending on the
indexing strategy. indexing strategy.
...@@ -266,7 +266,7 @@ CREATE INDEX <replaceable>name</replaceable> ON <replaceable>table</replaceable> ...@@ -266,7 +266,7 @@ CREATE INDEX <replaceable>name</replaceable> ON <replaceable>table</replaceable>
(See <xref linkend="functions-array"> for the meaning of (See <xref linkend="functions-array"> for the meaning of
these operators.) these operators.)
Another GIN operator classes are available in the <literal>contrib</> Other GIN operator classes are available in the <literal>contrib</>
tsearch2 and intarray modules. For more information see <xref linkend="GIN">. tsearch2 and intarray modules. For more information see <xref linkend="GIN">.
</para> </para>
</sect1> </sect1>
......
<!-- $PostgreSQL: pgsql/doc/src/sgml/mvcc.sgml,v 2.61 2006/09/17 22:50:31 tgl Exp $ --> <!-- $PostgreSQL: pgsql/doc/src/sgml/mvcc.sgml,v 2.62 2006/09/18 12:11:36 teodor Exp $ -->
<chapter id="mvcc"> <chapter id="mvcc">
<title>Concurrency Control</title> <title>Concurrency Control</title>
...@@ -995,8 +995,10 @@ UPDATE accounts SET balance = balance - 100.00 WHERE acctnum = 22222; ...@@ -995,8 +995,10 @@ UPDATE accounts SET balance = balance - 100.00 WHERE acctnum = 22222;
<para> <para>
Short-term share/exclusive page-level locks are used for Short-term share/exclusive page-level locks are used for
read/write access. Locks are released immediately after each read/write access. Locks are released immediately after each
index row is fetched or inserted. However, note that a GIN index index row is fetched or inserted. But note that a GIN-indexed
usually requires several inserts for each table row. value insertion usually produces several index key insertions
per row, so GIN may do substantial work for a single value's
insertion.
</para> </para>
</listitem> </listitem>
</varlistentry> </varlistentry>
......
<!-- $PostgreSQL: pgsql/doc/src/sgml/xindex.sgml,v 1.48 2006/09/16 00:30:16 momjian Exp $ --> <!-- $PostgreSQL: pgsql/doc/src/sgml/xindex.sgml,v 1.49 2006/09/18 12:11:36 teodor Exp $ -->
<sect1 id="xindex"> <sect1 id="xindex">
<title>Interfacing Extensions To Indexes</title> <title>Interfacing Extensions To Indexes</title>
...@@ -243,8 +243,8 @@ ...@@ -243,8 +243,8 @@
</table> </table>
<para> <para>
GIN indexes are similar to GiST in flexibility: it hasn't a fixed set GIN indexes are similar to GiST's in flexibility: they don't have a fixed
of strategies. Instead, the <quote>consistency</> support routine et of strategies. Instead, the <quote>consistency</> support routine
interprets the strategy numbers accordingly with operator class interprets the strategy numbers accordingly with operator class
definition. As an example, strategies of operator class over arrays definition. As an example, strategies of operator class over arrays
is shown in <xref linkend="xindex-gin-array-strat-table">. is shown in <xref linkend="xindex-gin-array-strat-table">.
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment