diff options
Diffstat (limited to 'src/backend/tsearch/ts_parse.c')
-rw-r--r-- | src/backend/tsearch/ts_parse.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/backend/tsearch/ts_parse.c b/src/backend/tsearch/ts_parse.c index 27b2cca2dfb..a87b442046a 100644 --- a/src/backend/tsearch/ts_parse.c +++ b/src/backend/tsearch/ts_parse.c @@ -433,6 +433,8 @@ parsetext(Oid cfgId, ParsedText *prs, char *buf, int buflen) /* * Headline framework */ + +/* Add a word to prs->words[] */ static void hladdword(HeadlineParsedText *prs, char *buf, int buflen, int type) { @@ -449,6 +451,14 @@ hladdword(HeadlineParsedText *prs, char *buf, int buflen, int type) prs->curwords++; } +/* + * Add pos and matching-query-item data to the just-added word. + * Here, buf/buflen represent a processed lexeme, not raw token text. + * + * If the query contains more than one matching item, we replicate + * the last-added word so that each item can be pointed to. The + * duplicate entries are marked with repeated = 1. + */ static void hlfinditem(HeadlineParsedText *prs, TSQuery query, int32 pos, char *buf, int buflen) { @@ -589,6 +599,9 @@ hlparsetext(Oid cfgId, HeadlineParsedText *prs, TSQuery query, char *buf, int bu FunctionCall1(&(prsobj->prsend), PointerGetDatum(prsdata)); } +/* + * Generate the headline, as a text object, from HeadlineParsedText. + */ text * generateHeadline(HeadlineParsedText *prs) { |