forked from docs/doc-exports
Reviewed-by: Pruthi, Vineet <vineet.pruthi@t-systems.com> Co-authored-by: Lu, Huayi <luhuayi@huawei.com> Co-committed-by: Lu, Huayi <luhuayi@huawei.com>
212 lines
26 KiB
HTML
212 lines
26 KiB
HTML
<a name="EN-US_TOPIC_0000001188588978"></a><a name="EN-US_TOPIC_0000001188588978"></a>
|
|
|
|
<h1 class="topictitle1">Text Search Types</h1>
|
|
<div id="body8662426"><p id="EN-US_TOPIC_0000001188588978__en-us_topic_0059778491_p12917462412"><span id="EN-US_TOPIC_0000001188588978__text21037665">GaussDB(DWS)</span> offers tsvector and tsquery data types to support full text search. The <strong id="EN-US_TOPIC_0000001188588978__b842352706105537">tsvector</strong> type represents a document in a form optimized for text search. The <strong id="EN-US_TOPIC_0000001188588978__b842352706105550">tsquery</strong> type similarly represents a text query.</p>
|
|
<div class="section" id="EN-US_TOPIC_0000001188588978__s934d4044f26b4b9fa4db5ac289b9c466"><h4 class="sectiontitle">tsvector</h4><p id="EN-US_TOPIC_0000001188588978__p6472191671720">The tsvector type represents a retrieval unit, usually a row of text fields in a database table or a combination of these fields.</p>
|
|
<p id="EN-US_TOPIC_0000001188588978__p876563984613">A tsvector value is a sorted list of distinct lexemes, which are words that have been normalized to merge different variants of the same word. Sorting and duplicate-elimination are done automatically during input.</p>
|
|
<p id="EN-US_TOPIC_0000001188588978__a5f9226b2714749de9c5e3dd45d30f6c7">The <strong id="EN-US_TOPIC_0000001188588978__b842352706145110">to_tsvector</strong> function is used to parse and normalize a document string.</p>
|
|
<p id="EN-US_TOPIC_0000001188588978__abca4697680574757824dae1271251914">Use tsvector to segment a string into lexemes by space. The lexemes are sorted by letter and length. The following is an example:</p>
|
|
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001188588978__s163472b7c9fc4c13b9f3de46840fd980"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span>
|
|
<span class="normal">2</span>
|
|
<span class="normal">3</span>
|
|
<span class="normal">4</span>
|
|
<span class="normal">5</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">SELECT</span><span class="w"> </span><span class="s1">'a fat cat sat on a mat and ate a fat rat'</span><span class="p">::</span><span class="n">tsvector</span><span class="p">;</span>
|
|
<span class="w"> </span><span class="n">tsvector</span><span class="w"> </span>
|
|
<span class="c1">----------------------------------------------------</span>
|
|
<span class="w"> </span><span class="s1">'a'</span><span class="w"> </span><span class="s1">'and'</span><span class="w"> </span><span class="s1">'ate'</span><span class="w"> </span><span class="s1">'cat'</span><span class="w"> </span><span class="s1">'fat'</span><span class="w"> </span><span class="s1">'mat'</span><span class="w"> </span><span class="s1">'on'</span><span class="w"> </span><span class="s1">'rat'</span><span class="w"> </span><span class="s1">'sat'</span>
|
|
<span class="p">(</span><span class="mi">1</span><span class="w"> </span><span class="k">row</span><span class="p">)</span>
|
|
</pre></div></td></tr></table></div>
|
|
|
|
</div>
|
|
<p id="EN-US_TOPIC_0000001188588978__aea15b3305e6f48a184771553a58eae28">To represent lexemes containing whitespace or punctuation, surround them with quotes:</p>
|
|
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001188588978__s37912316ffa64388882892627bc23e71"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span>
|
|
<span class="normal">2</span>
|
|
<span class="normal">3</span>
|
|
<span class="normal">4</span>
|
|
<span class="normal">5</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">SELECT</span><span class="w"> </span><span class="err">$$</span><span class="n">the</span><span class="w"> </span><span class="n">lexeme</span><span class="w"> </span><span class="s1">' '</span><span class="w"> </span><span class="k">contains</span><span class="w"> </span><span class="n">spaces$$</span><span class="p">::</span><span class="n">tsvector</span><span class="p">;</span>
|
|
<span class="w"> </span><span class="n">tsvector</span><span class="w"> </span>
|
|
<span class="c1">-------------------------------------------</span>
|
|
<span class="w"> </span><span class="s1">' '</span><span class="w"> </span><span class="s1">'contains'</span><span class="w"> </span><span class="s1">'lexeme'</span><span class="w"> </span><span class="s1">'spaces'</span><span class="w"> </span><span class="s1">'the'</span>
|
|
<span class="p">(</span><span class="mi">1</span><span class="w"> </span><span class="k">row</span><span class="p">)</span>
|
|
</pre></div></td></tr></table></div>
|
|
|
|
</div>
|
|
<p id="EN-US_TOPIC_0000001188588978__p1432201019214">If a string is enclosed in common single quotation marks, the single quotation marks (') and backslashes (\) embedded in the string must be double-written for escape.</p>
|
|
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001188588978__sd430895458d7429aac354e1b769cfab7"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span>
|
|
<span class="normal">2</span>
|
|
<span class="normal">3</span>
|
|
<span class="normal">4</span>
|
|
<span class="normal">5</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">SELECT</span><span class="w"> </span><span class="err">$$</span><span class="n">the</span><span class="w"> </span><span class="n">lexeme</span><span class="w"> </span><span class="s1">'Joe''s'</span><span class="w"> </span><span class="k">contains</span><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="n">quote$$</span><span class="p">::</span><span class="n">tsvector</span><span class="p">;</span>
|
|
<span class="w"> </span><span class="n">tsvector</span><span class="w"> </span>
|
|
<span class="c1">------------------------------------------------</span>
|
|
<span class="w"> </span><span class="s1">'Joe''s'</span><span class="w"> </span><span class="s1">'a'</span><span class="w"> </span><span class="s1">'contains'</span><span class="w"> </span><span class="s1">'lexeme'</span><span class="w"> </span><span class="s1">'quote'</span><span class="w"> </span><span class="s1">'the'</span>
|
|
<span class="p">(</span><span class="mi">1</span><span class="w"> </span><span class="k">row</span><span class="p">)</span>
|
|
</pre></div></td></tr></table></div>
|
|
|
|
</div>
|
|
<p id="EN-US_TOPIC_0000001188588978__a82c16692ac634f2ab4af6d0fa2710f4d">Optionally, integer positions can be attached to lexemes:</p>
|
|
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001188588978__s4560451dd4774fc89c384301474af404"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span>
|
|
<span class="normal">2</span>
|
|
<span class="normal">3</span>
|
|
<span class="normal">4</span>
|
|
<span class="normal">5</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">SELECT</span><span class="w"> </span><span class="s1">'a:1 fat:2 cat:3 sat:4 on:5 a:6 mat:7 and:8 ate:9 a:10 fat:11 rat:12'</span><span class="p">::</span><span class="n">tsvector</span><span class="p">;</span>
|
|
<span class="w"> </span><span class="n">tsvector</span><span class="w"> </span>
|
|
<span class="c1">-------------------------------------------------------------------------------</span>
|
|
<span class="w"> </span><span class="s1">'a'</span><span class="p">:</span><span class="mi">1</span><span class="p">,</span><span class="mi">6</span><span class="p">,</span><span class="mi">10</span><span class="w"> </span><span class="s1">'and'</span><span class="p">:</span><span class="mi">8</span><span class="w"> </span><span class="s1">'ate'</span><span class="p">:</span><span class="mi">9</span><span class="w"> </span><span class="s1">'cat'</span><span class="p">:</span><span class="mi">3</span><span class="w"> </span><span class="s1">'fat'</span><span class="p">:</span><span class="mi">2</span><span class="p">,</span><span class="mi">11</span><span class="w"> </span><span class="s1">'mat'</span><span class="p">:</span><span class="mi">7</span><span class="w"> </span><span class="s1">'on'</span><span class="p">:</span><span class="mi">5</span><span class="w"> </span><span class="s1">'rat'</span><span class="p">:</span><span class="mi">12</span><span class="w"> </span><span class="s1">'sat'</span><span class="p">:</span><span class="mi">4</span>
|
|
<span class="p">(</span><span class="mi">1</span><span class="w"> </span><span class="k">row</span><span class="p">)</span>
|
|
</pre></div></td></tr></table></div>
|
|
|
|
</div>
|
|
<p id="EN-US_TOPIC_0000001188588978__a73595bf795fc44528c809dc2b75211a9">A position normally indicates the source word's location in the document. Positional information can be used for proximity ranking. Position values range from 1 to 16383. The default maximum value is <strong id="EN-US_TOPIC_0000001188588978__b842352706121150">16383</strong>. Duplicate positions for the same lexeme are discarded.</p>
|
|
<p id="EN-US_TOPIC_0000001188588978__a7fad5312f07949a2ad871e29422832f1">Lexemes that have positions can further be labeled with a weight, which can be <strong id="EN-US_TOPIC_0000001188588978__b33795175312">A</strong>, <strong id="EN-US_TOPIC_0000001188588978__b19367132216317">B</strong>, <strong id="EN-US_TOPIC_0000001188588978__b101020259319">C</strong>, or <strong id="EN-US_TOPIC_0000001188588978__b16960928336">D</strong>. <strong id="EN-US_TOPIC_0000001188588978__b192641953143211">D</strong> is the default weight. It is not displayed in the output:</p>
|
|
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001188588978__s49341942863b400982ac56cc882e113b"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span>
|
|
<span class="normal">2</span>
|
|
<span class="normal">3</span>
|
|
<span class="normal">4</span>
|
|
<span class="normal">5</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">SELECT</span><span class="w"> </span><span class="s1">'a:1A fat:2B,4C cat:5D'</span><span class="p">::</span><span class="n">tsvector</span><span class="p">;</span>
|
|
<span class="w"> </span><span class="n">tsvector</span><span class="w"> </span>
|
|
<span class="c1">----------------------------</span>
|
|
<span class="w"> </span><span class="s1">'a'</span><span class="p">:</span><span class="mi">1</span><span class="n">A</span><span class="w"> </span><span class="s1">'cat'</span><span class="p">:</span><span class="mi">5</span><span class="w"> </span><span class="s1">'fat'</span><span class="p">:</span><span class="mi">2</span><span class="n">B</span><span class="p">,</span><span class="mi">4</span><span class="k">C</span>
|
|
<span class="p">(</span><span class="mi">1</span><span class="w"> </span><span class="k">row</span><span class="p">)</span>
|
|
</pre></div></td></tr></table></div>
|
|
|
|
</div>
|
|
<p id="EN-US_TOPIC_0000001188588978__a80f4562c9ae64b06ad6fe4c9301e6085">Weights usually are used to reflect document structure, for example, by marking title words differently from body words. Text search ranking functions can assign different priorities to the different weight markers.</p>
|
|
<p id="EN-US_TOPIC_0000001188588978__a7e580ea03b1c44cab3667f4cec7af872">The following is an example of the standard usage of the tsvector type:</p>
|
|
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001188588978__s399a4bde2bb840679b2545260f1636b1"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span>
|
|
<span class="normal">2</span>
|
|
<span class="normal">3</span>
|
|
<span class="normal">4</span>
|
|
<span class="normal">5</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">SELECT</span><span class="w"> </span><span class="s1">'The Fat Rats'</span><span class="p">::</span><span class="n">tsvector</span><span class="p">;</span>
|
|
<span class="w"> </span><span class="n">tsvector</span><span class="w"> </span>
|
|
<span class="c1">--------------------</span>
|
|
<span class="w"> </span><span class="s1">'Fat'</span><span class="w"> </span><span class="s1">'Rats'</span><span class="w"> </span><span class="s1">'The'</span>
|
|
<span class="p">(</span><span class="mi">1</span><span class="w"> </span><span class="k">row</span><span class="p">)</span>
|
|
</pre></div></td></tr></table></div>
|
|
|
|
</div>
|
|
<p id="EN-US_TOPIC_0000001188588978__a8764cd7ea61646fe9488855d0dc12a9e">For most English-text-searching applications the above words would be considered non-normalized, which should usually be passed through <strong id="EN-US_TOPIC_0000001188588978__b84235270615147">to_tsvector</strong> to normalize the words appropriately for searching:</p>
|
|
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001188588978__scbef51dc5bfc4a79b8ed056ad50c7383"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span>
|
|
<span class="normal">2</span>
|
|
<span class="normal">3</span>
|
|
<span class="normal">4</span>
|
|
<span class="normal">5</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">SELECT</span><span class="w"> </span><span class="n">to_tsvector</span><span class="p">(</span><span class="s1">'english'</span><span class="p">,</span><span class="w"> </span><span class="s1">'The Fat Rats'</span><span class="p">);</span>
|
|
<span class="w"> </span><span class="n">to_tsvector</span><span class="w"> </span>
|
|
<span class="c1">-----------------</span>
|
|
<span class="w"> </span><span class="s1">'fat'</span><span class="p">:</span><span class="mi">2</span><span class="w"> </span><span class="s1">'rat'</span><span class="p">:</span><span class="mi">3</span>
|
|
<span class="p">(</span><span class="mi">1</span><span class="w"> </span><span class="k">row</span><span class="p">)</span>
|
|
</pre></div></td></tr></table></div>
|
|
|
|
</div>
|
|
</div>
|
|
<div class="section" id="EN-US_TOPIC_0000001188588978__s6fcc1326c15e422d8b40cce6e014b079"><h4 class="sectiontitle">tsquery</h4><p id="EN-US_TOPIC_0000001188588978__a1eae6fa57f8b4287b8b50f337778c838">The <strong id="EN-US_TOPIC_0000001188588978__b1129712910413">tsquery</strong> type represents a retrieval condition. A <strong id="EN-US_TOPIC_0000001188588978__b1129715294419">tsquery</strong> value stores lexemes that are to be searched for, and combines them honoring the <strong id="EN-US_TOPIC_0000001188588978__b929720292418">Boolean</strong> operators <strong id="EN-US_TOPIC_0000001188588978__b142981629840">& (AND)</strong>, <strong id="EN-US_TOPIC_0000001188588978__b62986291247">| (OR)</strong>, and <strong id="EN-US_TOPIC_0000001188588978__b192984299420">! (NOT)</strong>. Parentheses can be used to enforce grouping of the operators. If there is no parenthesis, (<strong id="EN-US_TOPIC_0000001188588978__b1898764013215">NOT</strong>) has the highest priority, followed by <strong id="EN-US_TOPIC_0000001188588978__b165927445326">&</strong>(<strong id="EN-US_TOPIC_0000001188588978__b0862246183217">AND</strong>), and finally <strong id="EN-US_TOPIC_0000001188588978__b512165015323">|</strong> (<strong id="EN-US_TOPIC_0000001188588978__b11311652133216">OR</strong>). The <strong id="EN-US_TOPIC_0000001188588978__b842352706152646">to_tsquery</strong> and <strong id="EN-US_TOPIC_0000001188588978__b842352706152652">plainto_tsquery</strong> functions will normalize lexemes before the lexemes are converted to the <strong id="EN-US_TOPIC_0000001188588978__b84235270615297">tsquery</strong> type.</p>
|
|
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001188588978__s272692d6effe4bba892214a8ece2bb12"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal"> 1</span>
|
|
<span class="normal"> 2</span>
|
|
<span class="normal"> 3</span>
|
|
<span class="normal"> 4</span>
|
|
<span class="normal"> 5</span>
|
|
<span class="normal"> 6</span>
|
|
<span class="normal"> 7</span>
|
|
<span class="normal"> 8</span>
|
|
<span class="normal"> 9</span>
|
|
<span class="normal">10</span>
|
|
<span class="normal">11</span>
|
|
<span class="normal">12</span>
|
|
<span class="normal">13</span>
|
|
<span class="normal">14</span>
|
|
<span class="normal">15</span>
|
|
<span class="normal">16</span>
|
|
<span class="normal">17</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">SELECT</span><span class="w"> </span><span class="s1">'fat & rat'</span><span class="p">::</span><span class="n">tsquery</span><span class="p">;</span>
|
|
<span class="w"> </span><span class="n">tsquery</span><span class="w"> </span>
|
|
<span class="c1">---------------</span>
|
|
<span class="w"> </span><span class="s1">'fat'</span><span class="w"> </span><span class="o">&</span><span class="w"> </span><span class="s1">'rat'</span>
|
|
<span class="p">(</span><span class="mi">1</span><span class="w"> </span><span class="k">row</span><span class="p">)</span>
|
|
|
|
<span class="k">SELECT</span><span class="w"> </span><span class="s1">'fat & (rat | cat)'</span><span class="p">::</span><span class="n">tsquery</span><span class="p">;</span>
|
|
<span class="w"> </span><span class="n">tsquery</span><span class="w"> </span>
|
|
<span class="c1">---------------------------</span>
|
|
<span class="w"> </span><span class="s1">'fat'</span><span class="w"> </span><span class="o">&</span><span class="w"> </span><span class="p">(</span><span class="w"> </span><span class="s1">'rat'</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="s1">'cat'</span><span class="w"> </span><span class="p">)</span>
|
|
<span class="p">(</span><span class="mi">1</span><span class="w"> </span><span class="k">row</span><span class="p">)</span>
|
|
|
|
<span class="k">SELECT</span><span class="w"> </span><span class="s1">'fat & rat & ! cat'</span><span class="p">::</span><span class="n">tsquery</span><span class="p">;</span>
|
|
<span class="w"> </span><span class="n">tsquery</span><span class="w"> </span>
|
|
<span class="c1">------------------------</span>
|
|
<span class="w"> </span><span class="s1">'fat'</span><span class="w"> </span><span class="o">&</span><span class="w"> </span><span class="s1">'rat'</span><span class="w"> </span><span class="o">&</span><span class="w"> </span><span class="o">!</span><span class="s1">'cat'</span>
|
|
<span class="p">(</span><span class="mi">1</span><span class="w"> </span><span class="k">row</span><span class="p">)</span>
|
|
</pre></div></td></tr></table></div>
|
|
|
|
</div>
|
|
<p id="EN-US_TOPIC_0000001188588978__a46b2546b37344689b0a34002ff851c27"></p>
|
|
<p id="EN-US_TOPIC_0000001188588978__ad5017f8edef84cc7a0bb6723f03b070d">Lexemes in a <strong id="EN-US_TOPIC_0000001188588978__b8423527061112">tsquery</strong> can be labeled with one or more weight letters, which match only <strong id="EN-US_TOPIC_0000001188588978__b84235270611125">tsvector</strong> lexemes with matching weights.</p>
|
|
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001188588978__sa7350eca12d84d1c9757227067c8c35b"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span>
|
|
<span class="normal">2</span>
|
|
<span class="normal">3</span>
|
|
<span class="normal">4</span>
|
|
<span class="normal">5</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">SELECT</span><span class="w"> </span><span class="s1">'fat:ab & cat'</span><span class="p">::</span><span class="n">tsquery</span><span class="p">;</span>
|
|
<span class="w"> </span><span class="n">tsquery</span><span class="w"> </span>
|
|
<span class="c1">------------------</span>
|
|
<span class="w"> </span><span class="s1">'fat'</span><span class="p">:</span><span class="n">AB</span><span class="w"> </span><span class="o">&</span><span class="w"> </span><span class="s1">'cat'</span>
|
|
<span class="p">(</span><span class="mi">1</span><span class="w"> </span><span class="k">row</span><span class="p">)</span>
|
|
</pre></div></td></tr></table></div>
|
|
|
|
</div>
|
|
<p id="EN-US_TOPIC_0000001188588978__a46a8188f3d3d4a49b0c3a26b549decfe">Also, lexemes in a <strong id="EN-US_TOPIC_0000001188588978__b842352706153059">tsquery</strong> can be labeled with * to specify prefix matching. The following query will match any word in a <strong id="EN-US_TOPIC_0000001188588978__b11965779293618">tsvector</strong> that begins with "super".</p>
|
|
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001188588978__sf2849e95604545ffb32b0f38346773a7"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span>
|
|
<span class="normal">2</span>
|
|
<span class="normal">3</span>
|
|
<span class="normal">4</span>
|
|
<span class="normal">5</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">SELECT</span><span class="w"> </span><span class="s1">'super:*'</span><span class="p">::</span><span class="n">tsquery</span><span class="p">;</span>
|
|
<span class="w"> </span><span class="n">tsquery</span><span class="w"> </span>
|
|
<span class="c1">-----------</span>
|
|
<span class="w"> </span><span class="s1">'super'</span><span class="p">:</span><span class="o">*</span>
|
|
<span class="p">(</span><span class="mi">1</span><span class="w"> </span><span class="k">row</span><span class="p">)</span>
|
|
</pre></div></td></tr></table></div>
|
|
|
|
</div>
|
|
<p id="EN-US_TOPIC_0000001188588978__a82f8139b7a474aec821e45a8123a01b4">Note that prefix matches are first checked by the text search analyzer. For example, the stem extracted from <strong id="EN-US_TOPIC_0000001188588978__b169972916219">postgres</strong> is <strong id="EN-US_TOPIC_0000001188588978__b7461112182110">postgr</strong>, which matches <strong id="EN-US_TOPIC_0000001188588978__b1398811335216">postgraduate</strong>. The following result is true:</p>
|
|
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001188588978__scdeff722dc34447792615c72ab866ee9"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span>
|
|
<span class="normal">2</span>
|
|
<span class="normal">3</span>
|
|
<span class="normal">4</span>
|
|
<span class="normal">5</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">SELECT</span><span class="w"> </span><span class="n">to_tsvector</span><span class="p">(</span><span class="w"> </span><span class="s1">'postgraduate'</span><span class="w"> </span><span class="p">)</span><span class="w"> </span><span class="o">@@</span><span class="w"> </span><span class="n">to_tsquery</span><span class="p">(</span><span class="w"> </span><span class="s1">'postgres:*'</span><span class="w"> </span><span class="p">)</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="k">RESULT</span><span class="p">;</span>
|
|
<span class="w"> </span><span class="k">result</span><span class="w"> </span>
|
|
<span class="c1">----------</span>
|
|
<span class="w"> </span><span class="n">t</span>
|
|
<span class="p">(</span><span class="mi">1</span><span class="w"> </span><span class="k">row</span><span class="p">)</span>
|
|
</pre></div></td></tr></table></div>
|
|
|
|
</div>
|
|
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001188588978__s0b577b1c97494a26a5e57754035d2b42"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span>
|
|
<span class="normal">2</span>
|
|
<span class="normal">3</span>
|
|
<span class="normal">4</span>
|
|
<span class="normal">5</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">SELECT</span><span class="w"> </span><span class="n">to_tsquery</span><span class="p">(</span><span class="s1">'postgres:*'</span><span class="p">);</span>
|
|
<span class="w"> </span><span class="n">to_tsquery</span><span class="w"> </span>
|
|
<span class="c1">------------</span>
|
|
<span class="w"> </span><span class="s1">'postgr'</span><span class="p">:</span><span class="o">*</span>
|
|
<span class="p">(</span><span class="mi">1</span><span class="w"> </span><span class="k">row</span><span class="p">)</span>
|
|
</pre></div></td></tr></table></div>
|
|
|
|
</div>
|
|
<p id="EN-US_TOPIC_0000001188588978__aa468b02083b146ffbef66f11ede11df6">The <strong id="EN-US_TOPIC_0000001188588978__b59271292226">to_tsquery</strong> function normalizes words before converting them to the tsquery type. <strong id="EN-US_TOPIC_0000001188588978__b842352706153241">'Fat:ab & Cats'</strong> is normalized to the <strong id="EN-US_TOPIC_0000001188588978__b842352706153349">tsquery</strong> type as follows:</p>
|
|
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001188588978__sfd4d8eeedbf74aa48b20366d61b9d868"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span>
|
|
<span class="normal">2</span>
|
|
<span class="normal">3</span>
|
|
<span class="normal">4</span>
|
|
<span class="normal">5</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">SELECT</span><span class="w"> </span><span class="n">to_tsquery</span><span class="p">(</span><span class="s1">'Fat:ab & Cats'</span><span class="p">);</span>
|
|
<span class="w"> </span><span class="n">to_tsquery</span><span class="w"> </span>
|
|
<span class="c1">------------------</span>
|
|
<span class="w"> </span><span class="s1">'fat'</span><span class="p">:</span><span class="n">AB</span><span class="w"> </span><span class="o">&</span><span class="w"> </span><span class="s1">'cat'</span>
|
|
<span class="p">(</span><span class="mi">1</span><span class="w"> </span><span class="k">row</span><span class="p">)</span>
|
|
</pre></div></td></tr></table></div>
|
|
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div>
|
|
<div class="familylinks">
|
|
<div class="parentlink"><strong>Parent topic:</strong> <a href="dws_06_0008.html">Data Types</a></div>
|
|
</div>
|
|
</div>
|
|
|