-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathvgram.h
executable file
·49 lines (41 loc) · 1.37 KB
/
vgram.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
/*-------------------------------------------------------------------------
*
* vgram.h
* Header for vgram module.
*
* Copyright (c) 2011-2017, Alexander Korotkov
*
* IDENTIFICATION
* contrib/vgram/vgram.h
*
*-------------------------------------------------------------------------
*/
#ifndef _V_GRAM_H_
#define _V_GRAM_H_
#include "tsearch/ts_locale.h"
/*
* V-gram parameters
*/
#define minQ (2)
#define maxQ (5)
#define isExtractable(c) (t_isalpha(c) || t_isdigit(c))
#define VGRAM_LIMIT_RATIO (0.005)
#define DEFAULT_CHARACTER_FREQUENCY (0.001)
#define EMPTY_CHARACTER ('$')
/* strategy numbers */
#define LikeStrategyNumber 3
#define ILikeStrategyNumber 4
typedef void (*WordCallback) (const char *wordStart, const char *wordEnd, void *userData);
typedef void (*VGramCallBack) (char *vgram, void *userData);
typedef struct
{
VGramCallBack callback;
void *userData;
} ExtractVGramsInfo;
extern void loadStats(void);
extern float4 estimateVGramSelectivilty(const char *vgram);
extern void extractMinimalVGramsWord(const char *wordStart, const char *wordEnd, void *userData);
extern void extractWords(const char *string, size_t len, WordCallback callback, void *userData);
extern void extractVGramsWord(const char *wordStart, const char *wordEnd, void *userData);
extern Datum *extractQueryLike(int32 *nentries, text *pattern);
#endif /* _V_GRAM_H_ */