{"Entry":{"collection":"sql","key":"create-text-search-template","name":"CREATE TEXT SEARCH TEMPLATE","aliases":["createtstemplate"],"metadata":{"aliases":["createtstemplate"],"changed_in":[],"changes":[{"from":"8.2","purpose_changed":false,"renamed":null,"sections":{"added":[],"changed":[],"removed":[]},"status":"added","synopsis":null,"to":"8.3"},{"from":"9.6","purpose_changed":false,"renamed":null,"sections":{"added":[],"changed":["description"],"removed":[]},"status":"changed","synopsis":null,"to":"10"}],"content_hash":"fe3201e6d306f413a923b35aaf5d9c058809b61f8048479ecf5df3ffbc023ca4","editorial":{},"first_version":"8.3","group":"textsearch","imported_at":"2026-09-30T17:43:38.641826+08:00","last_version":"20","name":"CREATE TEXT SEARCH TEMPLATE","object":"TEXT SEARCH TEMPLATE","position":8009,"present_in":["8.3","8.4","9.0","9.1","9.2","9.3","9.4","9.5","9.6","10","11","12","13","14","15","16","17","18","19","20"],"purpose":"define a new text search template","purpose_zh":"","related":["alter-text-search-template","drop-text-search-template"],"slug":"create-text-search-template","source_rev":"a709ab85","synopsis":"CREATE TEXT SEARCH TEMPLATE name (\n[ INIT = init_function , ]\nLEXIZE = lexize_function\n)","verb":"CREATE"}},"Definition":{"Collection":"sql","Key":"create-text-search-template","SourceDatabase":"center","Version":"18","SourceTable":"sqlcmd","SourceKey":"create-text-search-template","SourceRevision":"a709ab85","Facts":{"anchor":"SQL-CREATETSTEMPLATE","file":"sql-createtstemplate.html","lang":"en","name":"CREATE TEXT SEARCH TEMPLATE","purpose":"define a new text search template","purpose_zh":"","related":["alter-text-search-template","drop-text-search-template"],"sections":[{"html":"\u003cp\u003e\u003ccode class=\"command\"\u003eCREATE TEXT SEARCH TEMPLATE\u003c/code\u003e creates a new text search template. Text search templates define the functions that implement text search dictionaries. A template is not useful by itself, but must be instantiated as a dictionary to be used. The dictionary typically specifies parameters to be given to the template functions.\u003c/p\u003e\u003cp\u003eIf a schema name is given then the text search template is created in the specified schema. Otherwise it is created in the current schema.\u003c/p\u003e\u003cp\u003eYou must be a superuser to use \u003ccode class=\"command\"\u003eCREATE TEXT SEARCH TEMPLATE\u003c/code\u003e. This restriction is made because an erroneous text search template definition could confuse or even crash the server. The reason for separating templates from dictionaries is that a template encapsulates the \u003cspan class=\"quote\"\u003e“\u003cspan class=\"quote\"\u003eunsafe\u003c/span\u003e”\u003c/span\u003e aspects of defining a dictionary. The parameters that can be set when defining a dictionary are safe for unprivileged users to set, and so creating a dictionary need not be a privileged operation.\u003c/p\u003e\u003cp\u003eRefer to \u003ca href=\"/docs/18/textsearch.html\" title=\"Chapter 12. Full Text Search\"\u003eChapter 12\u003c/a\u003e for further information.\u003c/p\u003e","key":"description","title":"Description"},{"html":"\u003cdiv class=\"variablelist\"\u003e\u003cdl class=\"variablelist\"\u003e\u003cdt\u003e\u003cspan class=\"term\"\u003e\u003cem class=\"replaceable\"\u003e\u003ccode\u003ename\u003c/code\u003e\u003c/em\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003eThe name of the text search template to be created. The name can be schema-qualified.\u003c/p\u003e\u003c/dd\u003e\u003cdt\u003e\u003cspan class=\"term\"\u003e\u003cem class=\"replaceable\"\u003e\u003ccode\u003einit_function\u003c/code\u003e\u003c/em\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003eThe name of the init function for the template.\u003c/p\u003e\u003c/dd\u003e\u003cdt\u003e\u003cspan class=\"term\"\u003e\u003cem class=\"replaceable\"\u003e\u003ccode\u003elexize_function\u003c/code\u003e\u003c/em\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003eThe name of the lexize function for the template.\u003c/p\u003e\u003c/dd\u003e\u003c/dl\u003e\u003c/div\u003e\u003cp\u003eThe function names can be schema-qualified if necessary. Argument types are not given, since the argument list for each type of function is predetermined. The lexize function is required, but the init function is optional.\u003c/p\u003e\u003cp\u003eThe arguments can appear in any order, not only the one shown above.\u003c/p\u003e","key":"parameters","title":"Parameters"},{"html":"\u003cp\u003eThere is no \u003ccode class=\"command\"\u003eCREATE TEXT SEARCH TEMPLATE\u003c/code\u003e statement in the SQL standard.\u003c/p\u003e","key":"compatibility","title":"Compatibility"},{"html":"\u003cspan class=\"simplelist\"\u003e\u003ca href=\"/wiki/sql/alter-text-search-template/?v=18\" title=\"ALTER TEXT SEARCH TEMPLATE\"\u003e\u003cspan class=\"refentrytitle\"\u003eALTER TEXT SEARCH TEMPLATE\u003c/span\u003e\u003c/a\u003e, \u003ca href=\"/wiki/sql/drop-text-search-template/?v=18\" title=\"DROP TEXT SEARCH TEMPLATE\"\u003e\u003cspan class=\"refentrytitle\"\u003eDROP TEXT SEARCH TEMPLATE\u003c/span\u003e\u003c/a\u003e\u003c/span\u003e","key":"see_also","title":"See Also"}],"sections_same_as":"","slug":"18","synopsis_html":"CREATE TEXT SEARCH TEMPLATE \u003cem class=\"replaceable\"\u003e\u003ccode\u003ename\u003c/code\u003e\u003c/em\u003e (\n    [ INIT = \u003cem class=\"replaceable\"\u003e\u003ccode\u003einit_function\u003c/code\u003e\u003c/em\u003e , ]\n    LEXIZE = \u003cem class=\"replaceable\"\u003e\u003ccode\u003elexize_function\u003c/code\u003e\u003c/em\u003e\n)","synopsis_text":"CREATE TEXT SEARCH TEMPLATE name (\n[ INIT = init_function , ]\nLEXIZE = lexize_function\n)"},"ManualEvidence":{},"MeasuredEvidence":{}},"Text":{"Collection":"sql","Key":"create-text-search-template","SourceDatabase":"pgweb","Version":"18","Locale":"zh-Hans","Title":"CREATE TEXT SEARCH TEMPLATE","Summary":"定义一个新的文本检索模板","BodyHTML":"\u003cpre\u003eCREATE TEXT SEARCH TEMPLATE name (\n[ INIT = init_function , ]\nLEXIZE = lexize_function\n)\u003c/pre\u003e\u003csection\u003e\u003ch2\u003e描述\u003c/h2\u003e\u003cp\u003e\u003ccode\u003eCREATE TEXT SEARCH TEMPLATE\u003c/code\u003e创建一个新的文本检索模板。文本检索模板定义实现文本检索词典的函数。模板本身并无直接用途，必须先实例化为词典后才能使用。词典通常会指定要传递给模板函数的参数。\u003c/p\u003e\u003cp\u003e如果给出了模式名称，则文本检索模板会被创建在指定模式中。否则它会被创建在当前模式中。\u003c/p\u003e\u003cp\u003e要使用\u003ccode\u003eCREATE TEXT SEARCH TEMPLATE\u003c/code\u003e，你必须是超级用户。之所以有此限制，是因为错误的文本检索模板定义可能使服务器陷入混乱，甚至崩溃。将模板与词典分离的原因在于，模板封装了定义词典时那些\u003cspan\u003e“\u003cspan\u003e不安全\u003c/span\u003e”\u003c/span\u003e的方面。而在定义词典时可设置的参数，由普通用户设置也是安全的，因此创建词典不必是特权操作。\u003c/p\u003e\u003cp\u003e更多信息请参见\u003ca href=\"/docs/18/textsearch.html\" rel=\"nofollow\"\u003e第 12 章\u003c/a\u003e。\u003c/p\u003e\u003c/section\u003e\u003csection\u003e\u003ch2\u003e参数\u003c/h2\u003e\u003cdiv\u003e\u003cdl\u003e\u003cdt\u003e\u003cspan\u003e\u003cem\u003e\u003ccode\u003ename\u003c/code\u003e\u003c/em\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003e要创建的文本检索模板名称。该名称可以是模式限定的。\u003c/p\u003e\u003c/dd\u003e\u003cdt\u003e\u003cspan\u003e\u003cem\u003e\u003ccode\u003einit_function\u003c/code\u003e\u003c/em\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003e该模板的 init 函数的名称。\u003c/p\u003e\u003c/dd\u003e\u003cdt\u003e\u003cspan\u003e\u003cem\u003e\u003ccode\u003elexize_function\u003c/code\u003e\u003c/em\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003e该模板的 lexize 函数名称。\u003c/p\u003e\u003c/dd\u003e\u003c/dl\u003e\u003c/div\u003e\u003cp\u003e如有必要，函数名称可以是模式限定的。这里没有给出参数类型，因为每一类函数的参数列表都是预先确定的。lexize 函数是必需的，但 init 函数是可选的。\u003c/p\u003e\u003cp\u003e这些参数可以按任意顺序出现，不必与上面展示的顺序一致。\u003c/p\u003e\u003c/section\u003e\u003csection\u003e\u003ch2\u003e兼容性\u003c/h2\u003e\u003cp\u003e在 SQL 标准中没有 \u003ccode\u003eCREATE TEXT SEARCH TEMPLATE\u003c/code\u003e语句。\u003c/p\u003e\u003c/section\u003e\u003csection\u003e\u003ch2\u003e另见\u003c/h2\u003e\u003cspan\u003e\u003ca href=\"/wiki/sql/alter-text-search-template/?v=18\" title=\"ALTER TEXT SEARCH TEMPLATE\" rel=\"nofollow\"\u003e\u003cspan\u003eALTER TEXT SEARCH TEMPLATE\u003c/span\u003e\u003c/a\u003e, \u003ca href=\"/wiki/sql/drop-text-search-template/?v=18\" title=\"DROP TEXT SEARCH TEMPLATE\" rel=\"nofollow\"\u003e\u003cspan\u003eDROP TEXT SEARCH TEMPLATE\u003c/span\u003e\u003c/a\u003e\u003c/span\u003e\u003c/section\u003e","SourceRevision":"1b5ca64c","ContentHash":"3c5a749c7604d1792c2f43da807c7146dbaded583f4e043c175a65e79a658cf3","Payload":{"purpose_zh":"定义一个新的文本检索模板","sections":[{"html":"\u003cp\u003e\u003ccode class=\"command\"\u003eCREATE TEXT SEARCH TEMPLATE\u003c/code\u003e创建一个新的文本检索模板。文本检索模板定义实现文本检索词典的函数。模板本身并无直接用途，必须先实例化为词典后才能使用。词典通常会指定要传递给模板函数的参数。\u003c/p\u003e\u003cp\u003e如果给出了模式名称，则文本检索模板会被创建在指定模式中。否则它会被创建在当前模式中。\u003c/p\u003e\u003cp\u003e要使用\u003ccode class=\"command\"\u003eCREATE TEXT SEARCH TEMPLATE\u003c/code\u003e，你必须是超级用户。之所以有此限制，是因为错误的文本检索模板定义可能使服务器陷入混乱，甚至崩溃。将模板与词典分离的原因在于，模板封装了定义词典时那些\u003cspan class=\"quote\"\u003e“\u003cspan class=\"quote\"\u003e不安全\u003c/span\u003e”\u003c/span\u003e的方面。而在定义词典时可设置的参数，由普通用户设置也是安全的，因此创建词典不必是特权操作。\u003c/p\u003e\u003cp\u003e更多信息请参见\u003ca href=\"/docs/18/textsearch.html\" title=\"第 12 章 全文检索\"\u003e第 12 章\u003c/a\u003e。\u003c/p\u003e","key":"description","title":"描述"},{"html":"\u003cdiv class=\"variablelist\"\u003e\u003cdl class=\"variablelist\"\u003e\u003cdt\u003e\u003cspan class=\"term\"\u003e\u003cem class=\"replaceable\"\u003e\u003ccode\u003ename\u003c/code\u003e\u003c/em\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003e要创建的文本检索模板名称。该名称可以是模式限定的。\u003c/p\u003e\u003c/dd\u003e\u003cdt\u003e\u003cspan class=\"term\"\u003e\u003cem class=\"replaceable\"\u003e\u003ccode\u003einit_function\u003c/code\u003e\u003c/em\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003e该模板的 init 函数的名称。\u003c/p\u003e\u003c/dd\u003e\u003cdt\u003e\u003cspan class=\"term\"\u003e\u003cem class=\"replaceable\"\u003e\u003ccode\u003elexize_function\u003c/code\u003e\u003c/em\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003e该模板的 lexize 函数名称。\u003c/p\u003e\u003c/dd\u003e\u003c/dl\u003e\u003c/div\u003e\u003cp\u003e如有必要，函数名称可以是模式限定的。这里没有给出参数类型，因为每一类函数的参数列表都是预先确定的。lexize 函数是必需的，但 init 函数是可选的。\u003c/p\u003e\u003cp\u003e这些参数可以按任意顺序出现，不必与上面展示的顺序一致。\u003c/p\u003e","key":"parameters","title":"参数"},{"html":"\u003cp\u003e在 SQL 标准中没有 \u003ccode class=\"command\"\u003eCREATE TEXT SEARCH TEMPLATE\u003c/code\u003e语句。\u003c/p\u003e","key":"compatibility","title":"兼容性"},{"html":"\u003cspan class=\"simplelist\"\u003e\u003ca href=\"/wiki/sql/alter-text-search-template/?v=18\" title=\"ALTER TEXT SEARCH TEMPLATE\"\u003e\u003cspan class=\"refentrytitle\"\u003eALTER TEXT SEARCH TEMPLATE\u003c/span\u003e\u003c/a\u003e, \u003ca href=\"/wiki/sql/drop-text-search-template/?v=18\" title=\"DROP TEXT SEARCH TEMPLATE\"\u003e\u003cspan class=\"refentrytitle\"\u003eDROP TEXT SEARCH TEMPLATE\u003c/span\u003e\u003c/a\u003e\u003c/span\u003e","key":"see_also","title":"另见"}],"sections_same_as":"","synopsis_html":"CREATE TEXT SEARCH TEMPLATE \u003cem class=\"replaceable\"\u003e\u003ccode\u003ename\u003c/code\u003e\u003c/em\u003e (\n    [ INIT = \u003cem class=\"replaceable\"\u003e\u003ccode\u003einit_function\u003c/code\u003e\u003c/em\u003e , ]\n    LEXIZE = \u003cem class=\"replaceable\"\u003e\u003ccode\u003elexize_function\u003c/code\u003e\u003c/em\u003e\n)","synopsis_text":"CREATE TEXT SEARCH TEMPLATE name (\n[ INIT = init_function , ]\nLEXIZE = lexize_function\n)"}},"RequestedLocale":"zh-Hans","Fallback":false,"Versions":["10","11","12","13","14","15","16","17","18","19","20","8.3","8.4","9.0","9.1","9.2","9.3","9.4","9.5","9.6"],"Locales":["en","zh-Hans"],"Signatures":null,"Spellings":null,"SQLState":null,"Evidence":null}
