Skip to content

Commit de4487b

Browse files
committed
Merge branch 'PGPROEE9_6' of gitlab.postgrespro.ru:pgpro-dev/postgrespro into PGPROEE9_6
2 parents 37af9c4 + c2b3a08 commit de4487b

File tree

3 files changed

+137
-0
lines changed

3 files changed

+137
-0
lines changed

doc/src/sgml/contrib.sgml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -142,6 +142,7 @@ CREATE EXTENSION <replaceable>module_name</> FROM unpackaged;
142142
&pgvariables;
143143
&pgvisibility;
144144
&postgres-fdw;
145+
&rum;
145146
&seg;
146147
&sepgsql;
147148
&shared-ispell;

doc/src/sgml/filelist.sgml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -149,6 +149,7 @@
149149
<!ENTITY pgvariables SYSTEM "pg_variables.sgml">
150150
<!ENTITY pgvisibility SYSTEM "pgvisibility.sgml">
151151
<!ENTITY postgres-fdw SYSTEM "postgres-fdw.sgml">
152+
<!ENTITY rum SYSTEM "rum.sgml">
152153
<!ENTITY seg SYSTEM "seg.sgml">
153154
<!ENTITY contrib-spi SYSTEM "contrib-spi.sgml">
154155
<!ENTITY sepgsql SYSTEM "sepgsql.sgml">

doc/src/sgml/rum.sgml

Lines changed: 135 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,135 @@
1+
<!-- doc/src/sgml/rum.sgml -->
2+
3+
<sect1 id="rum">
4+
<title>RUM - RUM access method</title>
5+
<sect2 id="run-introduction">
6+
<title>Introduction</title>
7+
<para>
8+
The <emphasis role="strong">rum</emphasis> module provides access
9+
method to work with RUM index. It is based on the GIN access
10+
methods code.
11+
</para>
12+
</sect2>
13+
<sect2 id="rum-license">
14+
<title>License</title>
15+
<para>
16+
This module available under the same license as
17+
<ulink url="http://www.postgresql.org/about/licence/">PostgreSQL</ulink>.
18+
</para>
19+
</sect2>
20+
<sect2 id="rum-new-access-method-and-operator-class">
21+
<title>New access method and operator class</title>
22+
<para>
23+
The <emphasis role="strong">rum</emphasis> module provides the
24+
access method <emphasis role="strong">rum</emphasis> and the
25+
operator class
26+
<emphasis role="strong">rum_tsvector_ops</emphasis>.
27+
</para>
28+
<para>
29+
The module provides new operators.
30+
</para>
31+
<informaltable>
32+
<tgroup cols="3">
33+
<colspec align="left" >
34+
<colspec align="left" >
35+
<colspec align="left" >
36+
<thead>
37+
<row>
38+
<entry>
39+
Operator
40+
</entry>
41+
<entry>
42+
Returns
43+
</entry>
44+
<entry>
45+
Description
46+
</entry>
47+
</row>
48+
</thead>
49+
<tbody>
50+
<row>
51+
<entry>
52+
tsvector &lt;=&gt; tsquery
53+
</entry>
54+
<entry>
55+
float4
56+
</entry>
57+
<entry>
58+
Returns distance between tsvector and tsquery.
59+
</entry>
60+
</row>
61+
</tbody>
62+
</tgroup>
63+
</informaltable>
64+
</sect2>
65+
<sect2 id="rum-examples">
66+
<title>Examples</title>
67+
<para>
68+
Let us assume we have the table:
69+
</para>
70+
<programlisting>
71+
CREATE TABLE test_rum(t text, a tsvector);
72+
73+
CREATE TRIGGER tsvectorupdate
74+
BEFORE UPDATE OR INSERT ON test_rum
75+
FOR EACH ROW EXECUTE PROCEDURE tsvector_update_trigger('a', 'pg_catalog.english', 't');
76+
77+
INSERT INTO test_rum(t) VALUES ('The situation is most beautiful');
78+
INSERT INTO test_rum(t) VALUES ('It is a beautiful');
79+
INSERT INTO test_rum(t) VALUES ('It looks like a beautiful place');
80+
</programlisting>
81+
<para>
82+
To create the <emphasis role="strong">rum</emphasis> index we need
83+
create an extension:
84+
</para>
85+
<programlisting>
86+
CREATE EXTENSION rum;
87+
</programlisting>
88+
<para>
89+
Then we can create new index:
90+
</para>
91+
<programlisting>
92+
CREATE INDEX rumidx ON test_rum USING rum (a rum_tsvector_ops);
93+
</programlisting>
94+
<para>
95+
And we can execute the following queries:
96+
</para>
97+
<programlisting>
98+
=# SELECT t, a &lt;=&gt; to_tsquery('english', 'beautiful | place') AS rank
99+
FROM test_rum
100+
WHERE a @@ to_tsquery('english', 'beautiful | place')
101+
ORDER BY a &lt;=&gt; to_tsquery('english', 'beautiful | place');
102+
t | rank
103+
---------------------------------+-----------
104+
The situation is most beautiful | 0.0303964
105+
It is a beautiful | 0.0303964
106+
It looks like a beautiful place | 0.0607927
107+
(3 rows)
108+
109+
=# SELECT t, a &lt;=&gt; to_tsquery('english', 'place | situation') AS rank
110+
FROM test_rum
111+
WHERE a @@ to_tsquery('english', 'place | situation')
112+
ORDER BY a &lt;=&gt; to_tsquery('english', 'place | situation');
113+
t | rank
114+
---------------------------------+-----------
115+
The situation is most beautiful | 0.0303964
116+
It looks like a beautiful place | 0.0303964
117+
(2 rows)
118+
</programlisting>
119+
</sect2>
120+
<sect2 id="rum-authors">
121+
<title>Authors</title>
122+
<para>
123+
Alexander Korotkov <email>a.korotkov@postgrespro.ru</email>
124+
Postgres Professional Ltd., Russia
125+
</para>
126+
<para>
127+
Oleg Bartunov <email>oleg@sai.msu.su</email> Postgres Professional
128+
Ltd., Russia
129+
</para>
130+
<para>
131+
Teodor Sigaev <email>teodor@sigaev.ru</email> Postgres
132+
Professional Ltd., Russia
133+
</para>
134+
</sect2>
135+
</sect1>

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy