|
7 | 7 | *
|
8 | 8 | *
|
9 | 9 | * IDENTIFICATION
|
10 |
| - * $PostgreSQL: pgsql/src/backend/tsearch/wparser_def.c,v 1.19 2009/01/15 16:33:28 teodor Exp $ |
| 10 | + * $PostgreSQL: pgsql/src/backend/tsearch/wparser_def.c,v 1.20 2009/01/15 16:33:59 teodor Exp $ |
11 | 11 | *
|
12 | 12 | *-------------------------------------------------------------------------
|
13 | 13 | */
|
@@ -1587,10 +1587,11 @@ prsd_end(PG_FUNCTION_ARGS)
|
1587 | 1587 | #defineCOMPLEXTOKEN(x) ( (x)==URL_T || (x)==NUMHWORD || (x)==ASCIIHWORD || (x)==HWORD )
|
1588 | 1588 | #defineENDPUNCTOKEN(x) ( (x)==SPACE )
|
1589 | 1589 |
|
1590 |
| -#defineTS_IDIGNORE(x) ( (x)==TAG_T || (x)==PROTOCOL || (x)==SPACE || (x)==XMLENTITY ) |
1591 |
| -#defineHLIDIGNORE(x) ( (x)==URL_T || (x)==TAG_T || (x)==NUMHWORD || (x)==ASCIIHWORD || (x)==HWORD ) |
1592 |
| -#defineXMLHLIDIGNORE(x) ( (x)==URL_T || (x)==NUMHWORD || (x)==ASCIIHWORD || (x)==HWORD ) |
1593 |
| -#defineNONWORDTOKEN(x) ( (x)==SPACE || HLIDIGNORE(x) ) |
| 1590 | +#defineTS_IDIGNORE(x) ( (x)==TAG_T || (x)==PROTOCOL || (x)==SPACE || (x)==XMLENTITY ) |
| 1591 | +#defineHLIDREPLACE(x) ( (x)==TAG_T ) |
| 1592 | +#defineHLIDSKIP(x) ( (x)==URL_T || (x)==NUMHWORD || (x)==ASCIIHWORD || (x)==HWORD ) |
| 1593 | +#defineXMLHLIDSKIP(x) ( (x)==URL_T || (x)==NUMHWORD || (x)==ASCIIHWORD || (x)==HWORD ) |
| 1594 | +#defineNONWORDTOKEN(x) ( (x)==SPACE || HLIDREPLACE(x) || HLIDSKIP(x) ) |
1594 | 1595 | #defineNOENDTOKEN(x)( NONWORDTOKEN(x) || (x)==SCIENTIFIC || (x)==VERSIONNUMBER || (x)==DECIMAL || (x)==SIGNEDINT || (x)==UNSIGNEDINT || TS_IDIGNORE(x) )
|
1595 | 1596 |
|
1596 | 1597 | typedefstruct
|
@@ -1695,13 +1696,15 @@ mark_fragment(HeadlineParsedText *prs, int highlight, int startpos, int endpos)
|
1695 | 1696 | prs->words[i].selected=1;
|
1696 | 1697 | if (highlight==0)
|
1697 | 1698 | {
|
1698 |
| -if (HLIDIGNORE(prs->words[i].type)) |
| 1699 | +if (HLIDREPLACE(prs->words[i].type)) |
1699 | 1700 | prs->words[i].replace=1;
|
| 1701 | +elseif (HLIDSKIP(prs->words[i].type) ) |
| 1702 | +prs->words[i].skip=1; |
1700 | 1703 | }
|
1701 | 1704 | else
|
1702 | 1705 | {
|
1703 |
| -if (XMLHLIDIGNORE(prs->words[i].type)) |
1704 |
| -prs->words[i].replace=1; |
| 1706 | +if (XMLHLIDSKIP(prs->words[i].type)) |
| 1707 | +prs->words[i].skip=1; |
1705 | 1708 | }
|
1706 | 1709 |
|
1707 | 1710 | prs->words[i].in= (prs->words[i].repeated) ?0 :1;
|
@@ -2050,13 +2053,15 @@ mark_hl_words(HeadlineParsedText *prs, TSQuery query, int highlight,
|
2050 | 2053 | prs->words[i].selected=1;
|
2051 | 2054 | if (highlight==0)
|
2052 | 2055 | {
|
2053 |
| -if (HLIDIGNORE(prs->words[i].type)) |
| 2056 | +if (HLIDREPLACE(prs->words[i].type)) |
2054 | 2057 | prs->words[i].replace=1;
|
| 2058 | +elseif (HLIDSKIP(prs->words[i].type) ) |
| 2059 | +prs->words[i].skip=1; |
2055 | 2060 | }
|
2056 | 2061 | else
|
2057 | 2062 | {
|
2058 |
| -if (XMLHLIDIGNORE(prs->words[i].type)) |
2059 |
| -prs->words[i].replace=1; |
| 2063 | +if (XMLHLIDSKIP(prs->words[i].type)) |
| 2064 | +prs->words[i].skip=1; |
2060 | 2065 | }
|
2061 | 2066 |
|
2062 | 2067 | prs->words[i].in= (prs->words[i].repeated) ?0 :1;
|
|