<!--
doc/src/sgml/ref/create_tsdictionary.sgml
PostgreSQL documentation
-->

<refentry id="SQL-CREATETSDICTIONARY">
 <indexterm zone="sql-createtsdictionary">
  <primary>CREATE TEXT SEARCH DICTIONARY</primary>
 </indexterm>

 <refmeta>
  <refentrytitle>CREATE TEXT SEARCH DICTIONARY</refentrytitle>
  <manvolnum>7</manvolnum>
  <refmiscinfo>SQL - Language Statements</refmiscinfo>
 </refmeta>

 <refnamediv>
  <refname>CREATE TEXT SEARCH DICTIONARY</refname>
  <refpurpose>define a new text search dictionary</refpurpose>
 </refnamediv>

 <refsynopsisdiv>
<synopsis>
CREATE TEXT SEARCH DICTIONARY <replaceable class="parameter">name</replaceable> (
    TEMPLATE = <replaceable class="parameter">template</replaceable>
    [, <replaceable class="parameter">option</replaceable> = <replaceable class="parameter">value</replaceable> [, ... ]]
)
</synopsis>
 </refsynopsisdiv>

 <refsect1>
  <title>Description</title>

  <para>
   <command>CREATE TEXT SEARCH DICTIONARY</command> creates a new text search
   dictionary.  A text search dictionary specifies a way of recognizing
   interesting or uninteresting words for searching.  A dictionary depends
   on a text search template, which specifies the functions that actually
   perform the work.  Typically the dictionary provides some options that
   control the detailed behavior of the template's functions.
  </para>

  <para>
   If a schema name is given then the text search dictionary is created in the
   specified schema.  Otherwise it is created in the current schema.
  </para>

  <para>
   The user who defines a text search dictionary becomes its owner.
  </para>

  <para>
   Refer to <xref linkend="textsearch"> for further information.
  </para>
 </refsect1>

 <refsect1>
  <title>Parameters</title>

  <variablelist>
   <varlistentry>
    <term><replaceable class="parameter">name</replaceable></term>
    <listitem>
     <para>
      The name of the text search dictionary to be created.  The name can be
      schema-qualified.
     </para>
    </listitem>
   </varlistentry>

   <varlistentry>
    <term><replaceable class="parameter">template</replaceable></term>
    <listitem>
     <para>
      The name of the text search template that will define the basic
      behavior of this dictionary.
     </para>
    </listitem>
   </varlistentry>

   <varlistentry>
    <term><replaceable class="parameter">option</replaceable></term>
    <listitem>
     <para>
      The name of a template-specific option to be set for this dictionary.
     </para>
    </listitem>
   </varlistentry>

   <varlistentry>
    <term><replaceable class="parameter">value</replaceable></term>
    <listitem>
     <para>
      The value to use for a template-specific option.  If the value
      is not a simple identifier or number, it must be quoted (but you can
      always quote it, if you wish).
     </para>
    </listitem>
   </varlistentry>
  </variablelist>

  <para>
   The options can appear in any order.
  </para>
 </refsect1>

 <refsect1>
  <title>Examples</title>

  <para>
   The following example command creates a Snowball-based dictionary
   with a nonstandard list of stop words.
  </para>

<programlisting>
CREATE TEXT SEARCH DICTIONARY my_russian (
    template = snowball,
    language = russian,
    stopwords = myrussian
);
</programlisting>
 </refsect1>

 <refsect1>
  <title>Compatibility</title>

  <para>
   There is no <command>CREATE TEXT SEARCH DICTIONARY</command> statement in
   the SQL standard.
  </para>
 </refsect1>

 <refsect1>
  <title>See Also</title>

  <simplelist type="inline">
   <member><xref linkend="sql-altertsdictionary"></member>
   <member><xref linkend="sql-droptsdictionary"></member>
  </simplelist>
 </refsect1>
</refentry>
