65 virtual string toString(
void) {
return string(
"#FILTER[?]"); };
67 virtual string jsonClass(
void) {
return "CQFilter"; };
92 const string &arg0=
string(
""),
93 const string &arg1=
string(
""),
94 const string &arg2=
string(
"")
112 void SortBounds(
void);
121 string ResolveAttributeName(
CQueryCompiler *compiler,
const string& attrName,
bool allowBiblExpander=
false);
128 string argString(
const string &arg)
const;
131 virtual string jsonMinMax(
void);
132 virtual string jsonType(
void);
133 virtual string jsonData(
void) {
return (this->jsonType()+
","+this->jsonMinMax()); };
149 virtual string jsonClass(
void) {
return "CQFRankSort"; };
150 virtual string jsonData(
void) {
return this->jsonType(); };
159 :
CQFSort(ftype,string(
""),lb,ub)
166 static int Str2Date(
const std::string &datestr,
int onEmpty=0);
169 virtual string jsonClass(
void) {
return "CQFDateSort"; };
178 :
CQFSort(ftype,string(
""),lb,ub)
189 virtual string jsonClass(
void) {
return "CQFSizeSort"; };
209 virtual string jsonClass(
void) {
return "CQFRandomSort"; };
210 virtual string jsonData(
void) {
return (this->jsonType()+
",\"Seed\":"+
jsonStr(m_arg1)); };
220 const string &field=
string(
""),
221 const string &lb=
string(
""),
222 const string &ub=
string(
""))
235 virtual string jsonClass(
void) {
return "CQFBiblSort"; };
237 virtual string jsonMinMax(
void);
247 const string &field=
string(
""),
250 const string &lb=
string(
""),
251 const string &ub=
string(
""))
267 virtual string jsonClass(
void) {
return "CQFContextSort"; };
280 CQFHasField(
const std::string &field,
const std::string &val=
string(
""),
bool isNegated=
false)
281 :
CQFSort(
NoSort, field, val, string(
"")), m_Negated(isNegated)
290 virtual void Negate(
void);
297 virtual string valueString(
void);
302 virtual string jsonClass(
void) {
return "CQFHasField"; };
304 virtual string jsonMinMax(
void);
313 CQFHasFieldValue(
const std::string &field,
const std::string &val=
string(
""),
bool isNegated=
false)
327 virtual string jsonClass(
void) {
return "CQFHasFieldValue"; };
339 CQFHasFieldRegex(
const std::string &field,
const std::string &val=
string(
""),
bool isNegated=
false)
354 virtual string valueString(
void);
355 virtual string jsonClass(
void) {
return "CQFHasFieldRegex"; };
363 CQFHasFieldPrefix(
const std::string &field,
const std::string &val=
string(
""),
bool isNegated=
false)
374 virtual string valueString(
void);
375 virtual string jsonClass(
void) {
return "CQFHasFieldPrefix"; };
383 CQFHasFieldSuffix(
const std::string &field,
const std::string &val=
string(
""),
bool isNegated=
false)
394 virtual string valueString(
void);
395 virtual string jsonClass(
void) {
return "CQFHasFieldSuffix"; };
403 CQFHasFieldInfix(
const std::string &field,
const std::string &val=
string(
""),
bool isNegated=
false)
414 virtual string valueString(
void);
415 virtual string jsonClass(
void) {
return "CQFHasFieldInfix"; };
427 CQFHasFieldSet(
const std::string &field,
const set<string>& vals=set<string>(),
bool isNegated=
false)
428 :
CQFHasField(field, string(
"{}"), isNegated), m_Values(vals)
443 string SetValueString(
const set<string> &values);
447 {
return SetValueString(m_Values); };
450 virtual string valueString(
void);
452 virtual string jsonClass(
void) {
return "CQFHasFieldSet"; };
453 virtual string jsonFieldValue(
void);
504 void PruneHitsIndex(
const CQuery *qRoot, vector<size_t>& PeriodHitsIndex);
CQFHasField(const std::string &field, const std::string &val=string(""), bool isNegated=false)
Definition: QueryFilter.h:280
CQFRandomSort(const string &seed0=string(""))
Definition: QueryFilter.h:197
std::string m_arg1
1st argument (e.g. lower bound)
Definition: QueryFilter.h:85
virtual CQFilter * Clone()
clone this filter
Definition: QueryFilter.h:371
virtual string jsonClass(void)
Definition: QueryFilter.h:209
Definition: QueryFilter.h:195
Definition: FreeBiblIndex.h:33
Definition: QueryFilter.h:461
sort by the issue date (ascending)
Definition: ConcCommon.h:123
virtual string jsonClass(void)
Definition: QueryFilter.h:375
std::string m_arg2
2nd argument (e.g. upper bound)
Definition: QueryFilter.h:88
CQFHasFieldSuffix(const std::string &field, const std::string &val=string(""), bool isNegated=false)
Definition: QueryFilter.h:383
virtual string jsonClass(void)
Definition: QueryFilter.h:235
virtual CQFilter * Clone()
clone this filter
Definition: QueryFilter.h:391
sort by central context (ascending)
Definition: ConcCommon.h:139
virtual ~CQFHasFieldSuffix()
Definition: QueryFilter.h:389
Definition: QueryFilter.h:76
virtual string jsonFieldValue(void)
Definition: QueryFilter.h:303
virtual CQFilter * Clone()
clone this filter
Definition: QueryFilter.h:228
virtual CQFilter * Clone()
clone this filter
Definition: QueryFilter.h:433
class for global query filters aka "query operators"
Definition: QueryFilter.h:35
CDDCFilterWithBounds m_Filter
underlying DDC Filter struct
Definition: QueryFilter.h:79
virtual string jsonData()
Definition: ddcObject.h:202
Definition: QueryFilter.h:401
count query
Definition: QCount.h:320
virtual ~CQFRankSort()
Definition: QueryFilter.h:144
Definition: QueryFilter.h:311
bool m_Negated
is this a negated filter?
Definition: QueryFilter.h:277
CQFDateSort(HitSortEnum ftype=LessByDate, const string &lb=string(""), const string &ub=string(""))
Definition: QueryFilter.h:158
virtual HitSortEnum FilterType() const
sort-type for this filter (if any)
Definition: QueryFilter.h:58
virtual CQFilter * Clone()
clone this filter
Definition: QueryFilter.h:319
int m_ContextMatchId
match-id of reference token for context-sort operators (default=0:any)
Definition: ConcCommon.h:336
size_t m_limit
maximum number of hits per count-key
Definition: QueryFilter.h:464
virtual ~CQFHasField()
Definition: QueryFilter.h:284
virtual string toString(void)
convert filter to a canonical string
Definition: QueryFilter.h:66
Definition: QueryFilter.h:175
virtual HitSortEnum FilterType() const
sort-type for this filter (if any)
Definition: QueryFilter.h:108
string jsonStr(ddcObject *o)
json strinfication wrapper
Definition: ddcObject.h:208
virtual ddcObjectList Children() const
Definition: ddcObject.h:74
virtual ~CQFContextSort()
Definition: QueryFilter.h:258
virtual ~CQFHasFieldValue()
Definition: QueryFilter.h:317
CQFHasFieldPrefix(const std::string &field, const std::string &val=string(""), bool isNegated=false)
Definition: QueryFilter.h:363
HitSortEnum m_FilterType
the type of the filter
Definition: ConcCommon.h:321
CQFBiblSort(HitSortEnum ftype=LessByFreeBiblField, const string &field=string(""), const string &lb=string(""), const string &ub=string(""))
Definition: QueryFilter.h:219
virtual bool Compile(CQueryCompiler *compiler, CQueryOptions *options)
apply the filter to the given compiler
Definition: QueryFilter.cpp:77
virtual string jsonData(void)
Definition: QueryFilter.h:133
CQFRankSort(HitSortEnum ftype=GreaterByRank)
Definition: QueryFilter.h:141
class for global query filters aka "query operators"
Definition: ddcObject.h:45
CQCountKeyExprList * m_keys
list count-keys (externally allocated, freed here)
Definition: QueryFilter.h:467
virtual ~CQFBiblSort()
Definition: QueryFilter.h:226
CQFHasFieldInfix(const std::string &field, const std::string &val=string(""), bool isNegated=false)
Definition: QueryFilter.h:403
virtual CQFilter * Clone()
clone this filter
Definition: QueryFilter.h:163
virtual string jsonClass(void)
Definition: QueryFilter.h:302
CQFHasFieldValue(const std::string &field, const std::string &val=string(""), bool isNegated=false)
Definition: QueryFilter.h:313
virtual ~CQFSizeSort()
Definition: QueryFilter.h:183
CCountMap m_Counts
underlying counts
Definition: QueryFilter.h:470
list< ddcObject * > ddcObjectList
Definition: ddcObject.h:28
virtual CQFilter * Clone()
clone this filter
Definition: QueryFilter.h:411
std::string m_arg0
0th argument (e.g. field name)
Definition: QueryFilter.h:82
sort by document rank (descending)
Definition: ConcCommon.h:137
virtual string jsonClass(void)
Definition: QueryFilter.h:355
virtual string jsonClass(void)
Definition: QueryFilter.h:189
virtual string jsonClass(void)
Definition: QueryFilter.h:452
Definition: QueryFilter.h:139
virtual string jsonClass(void)
Definition: QueryFilter.h:149
root-level query options (filters and flags)
Definition: QueryOptions.h:39
virtual string jsonClass(void)
Definition: QueryFilter.h:130
CQFHasFieldRegex(const std::string &field, const std::string &val=string(""), bool isNegated=false)
Definition: QueryFilter.h:339
Definition: QueryFilter.h:381
virtual CQFilter * Clone()
clone this filter
Definition: QueryFilter.h:146
sort by a free bibliographical field (ascending)
Definition: ConcCommon.h:131
virtual bool CheckSatisfiable(CQueryCompiler *compiler, CQueryOptions *options)
Run fast (un)satisfiability checks for filter before Compile() is called. Default just returns true...
Definition: QueryFilter.cpp:70
virtual string jsonClass(void)
Definition: QueryFilter.h:395
virtual void DisownChildren()
Definition: ddcObject.h:79
m_arg0: field name, m_arg1: lower_bound, m_arg2: upper_bound
Definition: QueryFilter.h:217
CQFilter()
Default constructor.
Definition: QueryFilter.h:41
virtual ~CQFRandomSort()
Definition: QueryFilter.h:203
virtual string jsonClass(void)
Definition: QueryFilter.h:327
virtual string jsonClass(void)
Definition: QueryFilter.h:67
Definition: QueryFilter.h:421
std::string m_Regex
target regex (same as m_arg1 for direct regex filters; auto-generated for prefix-, suffix-, and infix-filters)
Definition: QueryFilter.h:336
sort by #prune[]-key (ascending)
Definition: ConcCommon.h:161
CQFSizeSort(HitSortEnum ftype=LessBySize, const string &lb=string(""), const string &ub=string(""))
Definition: QueryFilter.h:177
virtual CQFilter * Clone()
clone this filter
Definition: QueryFilter.h:205
virtual CQFilter * Clone()
clone this filter
Definition: QueryFilter.h:54
virtual CQFilter * Clone()
clone this filter
Definition: QueryFilter.h:345
virtual string jsonData(void)
Definition: QueryFilter.h:150
Definition: QueryCompiler.h:50
CQFHasFieldSet(const std::string &field, const set< string > &vals=set< string >(), bool isNegated=false)
Definition: QueryFilter.h:427
virtual string jsonData(void)
Definition: QueryFilter.h:210
virtual string jsonClass(void)
Definition: QueryFilter.h:415
virtual CQFilter * Clone()
clone this filter
Definition: QueryFilter.h:185
Definition: QueryFilter.h:156
sort by the size of the hit in tokens (ascending)
Definition: ConcCommon.h:127
map< string, size_t > CCountMap
type for count-query maps
Definition: QueryResult.h:30
virtual ~CQFHasFieldInfix()
Definition: QueryFilter.h:409
Definition: ConcCommon.h:318
virtual ~CQFSort()
Definition: QueryFilter.h:103
virtual CQFilter * Clone()
clone this filter
Definition: QueryFilter.h:105
virtual string jsonClass(void)
Definition: QueryFilter.h:169
virtual ~CQFilter()
Default destructor (empty)
Definition: QueryFilter.h:45
virtual string jsonClass(void)
Definition: QueryFilter.h:267
string escapeRegex(const std::string &re)
Definition: ddcString.cpp:384
virtual CQFilter * Clone()
clone this filter
Definition: QueryFilter.h:260
virtual ~CQFHasFieldPrefix()
Definition: QueryFilter.h:369
virtual ~CQFHasFieldRegex()
Definition: QueryFilter.h:343
CQFContextSort(HitSortEnum ftype=LessByMiddleContext, const string &field=string(""), int matchid=0, int offset=0, const string &lb=string(""), const string &ub=string(""))
Definition: QueryFilter.h:246
virtual ~CQFDateSort()
Definition: QueryFilter.h:161
Definition: QueryFilter.h:361
virtual string jsonClass(void)
Definition: QueryFilter.h:494
Definition: QueryFilter.h:333
string SetValueString(void)
wrapper for SetValueString(m_Values)
Definition: QueryFilter.h:446
int m_ContextOffset
offset from matched token for context-sort operators
Definition: ConcCommon.h:339
HitSortEnum
Definition: ConcCommon.h:119
virtual CQFilter * Clone()
clone this filter
Definition: QueryFilter.h:286
sort by random key
Definition: ConcCommon.h:151
m_arg0: field name, m_arg1: lower_bound, m_arg2: upper_bound
Definition: QueryFilter.h:244
Truly abstract (index-independent) representation of a parsed query Should eventually replace old ad...
Definition: Query.h:36
Definition: QueryFilter.h:274
std::set< std::string > m_Values
original target strings string
Definition: QueryFilter.h:424
no sort operators, only filtering (used by #has_field[])
Definition: ConcCommon.h:121
virtual ~CQFHasFieldSet()
Definition: QueryFilter.h:431