{"Entry":{"collection":"sql","key":"create-text-search-parser","name":"CREATE TEXT SEARCH PARSER","aliases":["createtsparser"],"metadata":{"aliases":["createtsparser"],"changed_in":[],"changes":[{"from":"8.2","purpose_changed":false,"renamed":null,"sections":{"added":[],"changed":[],"removed":[]},"status":"added","synopsis":null,"to":"8.3"}],"content_hash":"4fd73c7bf39137640e7baa28dacbe6c70db335e71aaf0d4504b7bec3d7c8b72b","editorial":{},"first_version":"8.3","group":"textsearch","imported_at":"2026-09-30T17:43:38.620007+08:00","last_version":"20","name":"CREATE TEXT SEARCH PARSER","object":"TEXT SEARCH PARSER","position":8006,"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 parser","purpose_zh":"","related":["alter-text-search-parser","drop-text-search-parser"],"slug":"create-text-search-parser","source_rev":"a709ab85","synopsis":"CREATE TEXT SEARCH PARSER name (\nSTART = start_function ,\nGETTOKEN = gettoken_function ,\nEND = end_function ,\nLEXTYPES = lextypes_function\n[, HEADLINE = headline_function ]\n)","verb":"CREATE"}},"Definition":{"Collection":"sql","Key":"create-text-search-parser","SourceDatabase":"center","Version":"18","SourceTable":"sqlcmd","SourceKey":"create-text-search-parser","SourceRevision":"a709ab85","Facts":{"anchor":"SQL-CREATETSPARSER","file":"sql-createtsparser.html","lang":"en","name":"CREATE TEXT SEARCH PARSER","purpose":"define a new text search parser","purpose_zh":"","related":["alter-text-search-parser","drop-text-search-parser"],"sections":[{"html":"\u003cp\u003e\u003ccode class=\"command\"\u003eCREATE TEXT SEARCH PARSER\u003c/code\u003e creates a new text search parser. A text search parser defines a method for splitting a text string into tokens and assigning types (categories) to the tokens. A parser is not particularly useful by itself, but must be bound into a text search configuration along with some text search dictionaries to be used for searching.\u003c/p\u003e\u003cp\u003eIf a schema name is given then the text search parser 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 PARSER\u003c/code\u003e. (This restriction is made because an erroneous text search parser definition could confuse or even crash the server.)\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 parser 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\u003estart_function\u003c/code\u003e\u003c/em\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003eThe name of the start function for the parser.\u003c/p\u003e\u003c/dd\u003e\u003cdt\u003e\u003cspan class=\"term\"\u003e\u003cem class=\"replaceable\"\u003e\u003ccode\u003egettoken_function\u003c/code\u003e\u003c/em\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003eThe name of the get-next-token function for the parser.\u003c/p\u003e\u003c/dd\u003e\u003cdt\u003e\u003cspan class=\"term\"\u003e\u003cem class=\"replaceable\"\u003e\u003ccode\u003eend_function\u003c/code\u003e\u003c/em\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003eThe name of the end function for the parser.\u003c/p\u003e\u003c/dd\u003e\u003cdt\u003e\u003cspan class=\"term\"\u003e\u003cem class=\"replaceable\"\u003e\u003ccode\u003elextypes_function\u003c/code\u003e\u003c/em\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003eThe name of the lextypes function for the parser (a function that returns information about the set of token types it produces).\u003c/p\u003e\u003c/dd\u003e\u003cdt\u003e\u003cspan class=\"term\"\u003e\u003cem class=\"replaceable\"\u003e\u003ccode\u003eheadline_function\u003c/code\u003e\u003c/em\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003eThe name of the headline function for the parser (a function that summarizes a set of tokens).\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. All except the headline function are required.\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 PARSER\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-parser/?v=18\" title=\"ALTER TEXT SEARCH PARSER\"\u003e\u003cspan class=\"refentrytitle\"\u003eALTER TEXT SEARCH PARSER\u003c/span\u003e\u003c/a\u003e, \u003ca href=\"/wiki/sql/drop-text-search-parser/?v=18\" title=\"DROP TEXT SEARCH PARSER\"\u003e\u003cspan class=\"refentrytitle\"\u003eDROP TEXT SEARCH PARSER\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 PARSER \u003cem class=\"replaceable\"\u003e\u003ccode\u003ename\u003c/code\u003e\u003c/em\u003e (\n    START = \u003cem class=\"replaceable\"\u003e\u003ccode\u003estart_function\u003c/code\u003e\u003c/em\u003e ,\n    GETTOKEN = \u003cem class=\"replaceable\"\u003e\u003ccode\u003egettoken_function\u003c/code\u003e\u003c/em\u003e ,\n    END = \u003cem class=\"replaceable\"\u003e\u003ccode\u003eend_function\u003c/code\u003e\u003c/em\u003e ,\n    LEXTYPES = \u003cem class=\"replaceable\"\u003e\u003ccode\u003elextypes_function\u003c/code\u003e\u003c/em\u003e\n    [, HEADLINE = \u003cem class=\"replaceable\"\u003e\u003ccode\u003eheadline_function\u003c/code\u003e\u003c/em\u003e ]\n)","synopsis_text":"CREATE TEXT SEARCH PARSER name (\nSTART = start_function ,\nGETTOKEN = gettoken_function ,\nEND = end_function ,\nLEXTYPES = lextypes_function\n[, HEADLINE = headline_function ]\n)"},"ManualEvidence":{},"MeasuredEvidence":{}},"Text":{"Collection":"sql","Key":"create-text-search-parser","SourceDatabase":"pgweb","Version":"18","Locale":"zh-Hans","Title":"CREATE TEXT SEARCH PARSER","Summary":"定义一个新的文本检索解析器","BodyHTML":"\u003cpre\u003eCREATE TEXT SEARCH PARSER name (\nSTART = start_function ,\nGETTOKEN = gettoken_function ,\nEND = end_function ,\nLEXTYPES = lextypes_function\n[, HEADLINE = headline_function ]\n)\u003c/pre\u003e\u003csection\u003e\u003ch2\u003e描述\u003c/h2\u003e\u003cp\u003e\u003ccode\u003eCREATE TEXT SEARCH PARSER\u003c/code\u003e创建一个新的文本检索解析器。文本检索解析器定义了一种方法，用于将文本字符串拆分成词元并为这些词元指定类型（类别）。解析器本身并没有太大用处，必须与一些文本检索词典一起绑定到一个文本检索配置中，才能用于搜索。\u003c/p\u003e\u003cp\u003e如果给出了一个模式名称，那么文本检索解析器将被创建在指定的模式中。否则它会被创建在当前模式中。\u003c/p\u003e\u003cp\u003e要使用\u003ccode\u003eCREATE TEXT SEARCH PARSER\u003c/code\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\u003estart_function\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\u003egettoken_function\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\u003eend_function\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\u003elextypes_function\u003c/code\u003e\u003c/em\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003e该解析器的 lextypes 函数的名称（该函数返回它所产生的词元类型集合的信息）。\u003c/p\u003e\u003c/dd\u003e\u003cdt\u003e\u003cspan\u003e\u003cem\u003e\u003ccode\u003eheadline_function\u003c/code\u003e\u003c/em\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003e该解析器的 headline 函数的名称（该函数对一组词元生成摘要）。\u003c/p\u003e\u003c/dd\u003e\u003c/dl\u003e\u003c/div\u003e\u003cp\u003e如有必要，函数名称可以是模式限定的。这里未给出参数类型，因为每类函数的参数列表都是预先确定的。除 headline 函数外，其余函数都是必需的。\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 PARSER\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-parser/?v=18\" title=\"ALTER TEXT SEARCH PARSER\" rel=\"nofollow\"\u003e\u003cspan\u003eALTER TEXT SEARCH PARSER\u003c/span\u003e\u003c/a\u003e, \u003ca href=\"/wiki/sql/drop-text-search-parser/?v=18\" title=\"DROP TEXT SEARCH PARSER\" rel=\"nofollow\"\u003e\u003cspan\u003eDROP TEXT SEARCH PARSER\u003c/span\u003e\u003c/a\u003e\u003c/span\u003e\u003c/section\u003e","SourceRevision":"1b5ca64c","ContentHash":"2f21156fee281e96a3edb4e5a864d457a824df2ef44400094ccef7c61ef6a5d3","Payload":{"purpose_zh":"定义一个新的文本检索解析器","sections":[{"html":"\u003cp\u003e\u003ccode class=\"command\"\u003eCREATE TEXT SEARCH PARSER\u003c/code\u003e创建一个新的文本检索解析器。文本检索解析器定义了一种方法，用于将文本字符串拆分成词元并为这些词元指定类型（类别）。解析器本身并没有太大用处，必须与一些文本检索词典一起绑定到一个文本检索配置中，才能用于搜索。\u003c/p\u003e\u003cp\u003e如果给出了一个模式名称，那么文本检索解析器将被创建在指定的模式中。否则它会被创建在当前模式中。\u003c/p\u003e\u003cp\u003e要使用\u003ccode class=\"command\"\u003eCREATE TEXT SEARCH PARSER\u003c/code\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\u003estart_function\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\u003egettoken_function\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\u003eend_function\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\u003elextypes_function\u003c/code\u003e\u003c/em\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003e该解析器的 lextypes 函数的名称（该函数返回它所产生的词元类型集合的信息）。\u003c/p\u003e\u003c/dd\u003e\u003cdt\u003e\u003cspan class=\"term\"\u003e\u003cem class=\"replaceable\"\u003e\u003ccode\u003eheadline_function\u003c/code\u003e\u003c/em\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003e该解析器的 headline 函数的名称（该函数对一组词元生成摘要）。\u003c/p\u003e\u003c/dd\u003e\u003c/dl\u003e\u003c/div\u003e\u003cp\u003e如有必要，函数名称可以是模式限定的。这里未给出参数类型，因为每类函数的参数列表都是预先确定的。除 headline 函数外，其余函数都是必需的。\u003c/p\u003e\u003cp\u003e这些参数可以按任意顺序出现，不必与上面展示的顺序一致。\u003c/p\u003e","key":"parameters","title":"参数"},{"html":"\u003cp\u003e在 SQL 标准中没有 \u003ccode class=\"command\"\u003eCREATE TEXT SEARCH PARSER\u003c/code\u003e语句。\u003c/p\u003e","key":"compatibility","title":"兼容性"},{"html":"\u003cspan class=\"simplelist\"\u003e\u003ca href=\"/wiki/sql/alter-text-search-parser/?v=18\" title=\"ALTER TEXT SEARCH PARSER\"\u003e\u003cspan class=\"refentrytitle\"\u003eALTER TEXT SEARCH PARSER\u003c/span\u003e\u003c/a\u003e, \u003ca href=\"/wiki/sql/drop-text-search-parser/?v=18\" title=\"DROP TEXT SEARCH PARSER\"\u003e\u003cspan class=\"refentrytitle\"\u003eDROP TEXT SEARCH PARSER\u003c/span\u003e\u003c/a\u003e\u003c/span\u003e","key":"see_also","title":"另见"}],"sections_same_as":"","synopsis_html":"CREATE TEXT SEARCH PARSER \u003cem class=\"replaceable\"\u003e\u003ccode\u003ename\u003c/code\u003e\u003c/em\u003e (\n    START = \u003cem class=\"replaceable\"\u003e\u003ccode\u003estart_function\u003c/code\u003e\u003c/em\u003e ,\n    GETTOKEN = \u003cem class=\"replaceable\"\u003e\u003ccode\u003egettoken_function\u003c/code\u003e\u003c/em\u003e ,\n    END = \u003cem class=\"replaceable\"\u003e\u003ccode\u003eend_function\u003c/code\u003e\u003c/em\u003e ,\n    LEXTYPES = \u003cem class=\"replaceable\"\u003e\u003ccode\u003elextypes_function\u003c/code\u003e\u003c/em\u003e\n    [, HEADLINE = \u003cem class=\"replaceable\"\u003e\u003ccode\u003eheadline_function\u003c/code\u003e\u003c/em\u003e ]\n)","synopsis_text":"CREATE TEXT SEARCH PARSER name (\nSTART = start_function ,\nGETTOKEN = gettoken_function ,\nEND = end_function ,\nLEXTYPES = lextypes_function\n[, HEADLINE = headline_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}
