Server IP : 85.214.239.14 / Your IP : 3.145.51.35 Web Server : Apache/2.4.62 (Debian) System : Linux h2886529.stratoserver.net 4.9.0 #1 SMP Tue Jan 9 19:45:01 MSK 2024 x86_64 User : www-data ( 33) PHP Version : 7.4.18 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare, MySQL : OFF | cURL : OFF | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : OFF Directory : /usr/include/postgresql/9.6/server/tsearch/ |
Upload File : |
/*------------------------------------------------------------------------- * * ts_public.h * Public interface to various tsearch modules, such as * parsers and dictionaries. * * Copyright (c) 1998-2016, PostgreSQL Global Development Group * * src/include/tsearch/ts_public.h * *------------------------------------------------------------------------- */ #ifndef _PG_TS_PUBLIC_H_ #define _PG_TS_PUBLIC_H_ #include "tsearch/ts_type.h" /* * Parser's framework */ /* * returning type for prslextype method of parser */ typedef struct { int lexid; char *alias; char *descr; } LexDescr; /* * Interface to headline generator */ typedef struct { uint32 selected:1, in:1, replace:1, repeated:1, skip:1, unused:3, type:8, len:16; WordEntryPos pos; char *word; QueryOperand *item; } HeadlineWordEntry; typedef struct { HeadlineWordEntry *words; int32 lenwords; int32 curwords; int32 vectorpos; /* positions a-la tsvector */ char *startsel; char *stopsel; char *fragdelim; int16 startsellen; int16 stopsellen; int16 fragdelimlen; } HeadlineParsedText; /* * Common useful things for tsearch subsystem */ extern char *get_tsearch_config_filename(const char *basename, const char *extension); /* * Often useful stopword list management */ typedef struct { int len; char **stop; } StopList; extern void readstoplist(const char *fname, StopList *s, char *(*wordop) (const char *)); extern bool searchstoplist(StopList *s, char *key); /* * Interface with dictionaries */ /* return struct for any lexize function */ typedef struct { /*---------- * Number of current variant of split word. For example the Norwegian * word 'fotballklubber' has two variants to split: ( fotball, klubb ) * and ( fot, ball, klubb ). So, dictionary should return: * * nvariant lexeme * 1 fotball * 1 klubb * 2 fot * 2 ball * 2 klubb * * In general, a TSLexeme will be considered to belong to the same split * variant as the previous one if they have the same nvariant value. * The exact values don't matter, only changes from one lexeme to next. *---------- */ uint16 nvariant; uint16 flags; /* See flag bits below */ char *lexeme; /* C string */ } TSLexeme; /* Flag bits that can appear in TSLexeme.flags */ #define TSL_ADDPOS 0x01 #define TSL_PREFIX 0x02 #define TSL_FILTER 0x04 /* * Struct for supporting complex dictionaries like thesaurus. * 4th argument for dictlexize method is a pointer to this */ typedef struct { bool isend; /* in: marks for lexize_info about text end is * reached */ bool getnext; /* out: dict wants next lexeme */ void *private_state; /* internal dict state between calls with * getnext == true */ } DictSubState; #endif /* _PG_TS_PUBLIC_H_ */