21 #ifndef DDC_CONC_SESSION_H 22 #define DDC_CONC_SESSION_H 27 #include "../CommonLib/ddcRandom.h" 149 bool GetContext(
int StartBreakNo,
int EndBreakNo,
const DWORD CurrFileNo,
const bool bConvertASCIIToHtmlSymbols,
string& Result)
const;
151 bool GetContextJson(
int StartBreakNo,
int EndBreakNo,
const DWORD CurrFileNo,
string& js)
const;
171 void SaveToCache(
const string& Query, vector<size_t>::const_iterator start, vector<size_t>::const_iterator end);
177 bool GetFileSnippets(
const int HitNo, vector<COutputToken>& Tokens)
const;
179 bool SaveOccurrences(
const vector<DWORD>& ChunkLengths,
int ContextSize,
const vector<CTokenNo>& Occurrences,
const vector<CHit>& Hits,
SaveTriggerType SaveTrigger,
DWORD LParam);
363 {
return &(m_pConcordance->
m_Txd); };
void AddFileReference(const long FileNo)
add a reference to FileNo according to m_ResultFormat
Definition: ConcSession.cpp:355
int UnlockSessionContext()
Definition: ConcSession.cpp:335
void ClearQuery()
clears the current parsed query (if any)
Definition: ConcSession.cpp:2376
bool GenerateOneHitStringJson(DWORD PageNumber, const CHit &Hit, const vector< COutputToken > &Tokens)
json: add hit string built by Hit to to m_QueryResultStr
Definition: ConcSession.cpp:874
void InitFileReferences(vector< CHit > &Hits) const
initializes CHit::m_FileNo for each hit of Hits
Definition: ConcSession.cpp:1227
string GetSortKeyHint(const size_t StartHitNo) const
get sortkey-hint appropriate for next page (after GenerateHitStrings()); used by CDDCLeafServer ...
Definition: ConcSession.cpp:1934
DDCFormatTypeEnum
FormatTypeEnum defines the format of output hits:
Definition: ConcCommon.h:468
string CanonicalQueryString(const string &Query)
moo: return a canonical representation of the query string Query (implicitly parses) ...
Definition: ConcSession.cpp:2396
CShortOccurCacheMap m_ShortOccurCaches
a cache for short occurrence lists which is used during iterating through corpus periods and evaluati...
Definition: ConcSession.h:93
CQueryCompiler * m_pQueryCompiler
current query compiler, for compilation & evaluation of input queries.
Definition: ConcSession.h:70
DDCRandom * m_pRandom
pseudo-random number generator
Definition: ConcSession.h:73
bool GetContext(int StartBreakNo, int EndBreakNo, const DWORD CurrFileNo, const bool bConvertASCIIToHtmlSymbols, string &Result) const
add hit strings [StartBreakNo, EndBreakNo) without highlighting to m_QueryResultStr ...
Definition: ConcSession.cpp:631
void InitSortByRandom(const CQuery *pQuery) const
Definition: ConcSession.cpp:1437
void WorkerCloneFree()
Definition: ConcSession.cpp:324
bool m_bSessionMaster
are we acting as a session master? if false, m_pSessionContext will be freed on object destruction; d...
Definition: ConcSession.h:64
DDCErrorEnum SimpleQuery(const string &Query, DWORD &EndHitNo, DWORD &HitsCount)
SimpleQuery finds hits by the given query. EndHitNo is used as an input/output parameter.
Definition: ConcSession.cpp:2123
void SetResultFormat(string ResultTypeStr)
set the current format of hit
Definition: ConcSession.cpp:2304
HitSortOrderEnum
Definition: ConcCommon.h:172
void SetRandomSeed(unsigned int seed1=0) const
moo: set internal random seed to m_RandomSeed+seed1
Definition: ConcSession.cpp:2416
bool SaveOccurrences(const vector< DWORD > &ChunkLengths, int ContextSize, const vector< CTokenNo > &Occurrences, const vector< CHit > &Hits, SaveTriggerType SaveTrigger, DWORD LParam)
saves current found hits using SaveTrigger, this function is only called from GetOccurrences ...
Definition: ConcSession.cpp:2166
size_t m_WorkerId
local worker-thread ID (default=0)
Definition: ConcSession.h:67
string BuildJsonContextString(const vector< COutputToken > &Tokens, bool doHighlight=true) const
moo: build a json context string by parsing delimited token data
Definition: ConcSession.cpp:554
DDCErrorEnum GetAllHits(const string &Query, size_t Start, size_t Limit)
Definition: ConcSession.cpp:1650
bool ShowBibliographyForTable(DWORD PageNumber, const CHit &Hit, const vector< COutputToken > &Tokens)
add bibliographical information about Hit to m_QueryResultStr under TableFormat
Definition: ConcSession.cpp:731
const ddcBreakVector * m_pBreaks
a pointer to the current hits collection
Definition: ConcSession.h:79
string GetHitIds() const
Definition: ConcSession.cpp:1950
void ClearQueryResults()
clears CQueryResult fields, also m_ErrorStr and m_ResultOffset
Definition: ConcSession.cpp:2352
void InitSortBySize(const CQuery *pQuery) const
Definition: ConcSession.cpp:1426
CQueryResult: query results, possibly aggregated by "break".
Definition: QueryResult.h:43
CConcSession(CConcSessionContext *SessionContext=NULL)
Definition: ConcSession.cpp:252
string GetResultFormatStr() const
return string representation of m_ResultFormat
Definition: ConcSession.cpp:2309
CConcIndexatorInvoker is a class for invoking an index process.
Definition: ConcIndexatorInvoker.h:21
common session data, sharable by multiple worker threads extracted from ddc-2.0.x CConcHolder; now C...
Definition: ConcSessionContext.h:32
Definition: Concordance.h:126
void SortKeyLB(CHitSortKey &key, const CDDCFilterWithBounds &Filter)
Definition: ConcSession.cpp:1596
string m_RequestPath
full request path leading to this session (used by CDDCLeafServer)
Definition: ConcSession.h:124
bool(* SaveTriggerType)(const string &, DWORD LParam)
save trigger for ConcordPattern application
Definition: ConcSession.h:33
size_t m_ResultLimit
Definition: ConcSession.h:116
map< string, CShortOccurCache > CShortOccurCacheMap
a type for index string to its occurrences
Definition: ConcCommon.h:477
class for a single (thread-local) DDC query session; formerly CConcHolder An instance of CConcSessio...
Definition: ConcSession.h:54
DDCFormatTypeEnum GetResultFormat() const
return the current format of hit
Definition: ConcSession.h:251
Definition: ConcCommon.h:263
void SetHitType()
sets hit type, initializing m_pBreaks
Definition: ConcSession.cpp:2332
HitSortOrderEnum HitSortOrder() const
get logical hit sort order; replaces HitsShouldBeSorted()
Definition: ConcSession.cpp:2360
TxDispatcher * GetTxDispatcher() const
moo: get term-expansion dispatcher for this object (wrapper for &m_pConcordance.m_Txd) ...
Definition: ConcSession.h:362
CConcSession * WorkerClone(size_t WorkerId)
Definition: ConcSession.cpp:290
time_t m_QueryEndTime
how much time a query can be processed, by default unlimited (-1)
Definition: ConcSession.h:76
size_t CacheSize(void) const
Definition: ConcSession.cpp:346
CConcSessionContext * m_pSessionContext
shared session data (cache, etc.)
Definition: ConcSession.h:61
void SetTimeOut(int TimeOut)
sets timeout for query processing
Definition: ConcSession.cpp:2365
DDCErrorEnum
Definition: DDCInternalError.h:24
Definition: QueryCompiler.h:50
DDCErrorEnum GenerateCountStrings(const int StartHitNo, bool UseAdditionalHitDelimiter=true)
Definition: ConcSession.cpp:1174
string GetCountIds() const
Definition: ConcSession.cpp:1970
bool GetTokensFromStorageByBreak(size_t IndexNo, size_t BreakNo, vector< COutputToken > &Tokens) const
initializes Tokens with words of hit BreakNo
Definition: ConcSession.cpp:985
DDCErrorEnum GetHits(const string &QueryStr, DWORD &EndHitNo)
Definition: ConcSession.cpp:1996
int GetTextArea() const
return the text area to be be searched
Definition: ConcSession.cpp:2345
Definition: ConcCommon.h:438
int LockSessionContext()
Definition: ConcSession.cpp:330
Definition: ConcCommon.h:318
bool GenerateOneHitString(DWORD PageNumber, const CHit &Hit, const vector< COutputToken > &Tokens)
add hit string built by Hit to to m_QueryResultStr
Definition: ConcSession.cpp:785
bool HasRankOrderOperator() const
Definition: ConcSession.cpp:2381
void InitSortKeyForHits(const CQuery *pQuery, const CDDCFilterWithBounds &Filter, vector< size_t > &PeriodHitsIndex)
Definition: ConcSession.cpp:1535
string m_ResultMinKey
Definition: ConcSession.h:121
bool TryToGetFromCache(const string &Query, DWORD &EndHitNo)
checks if Query si already in the cache, and if true, it returns its hit results from the cache ...
Definition: ConcSession.cpp:1984
string m_ErrorStr
most recent error message (if applicable)
Definition: ConcSession.h:99
void ClearQueryCache()
Definition: ConcSession.cpp:340
bool HasMatchIdOperator() const
Definition: ConcSession.cpp:2391
void ShowBibliographyForTextOrHtml(const CHit &Hit, DWORD PageNumber)
add bibliographical information about Hit to m_QueryResultStr
Definition: ConcSession.cpp:371
DDCErrorEnum GenerateHitStrings(const int StartHitNo, bool UseAdditionalHitDelimiter=true)
Definition: ConcSession.cpp:1081
DDCErrorEnum GetOccurrences(const string &Query, int ContextSize, SaveTriggerType SaveTrigger, DWORD LParam)
Finds all occurrences of Query(only occurrences , not hits!), if Query is an atomic query (CQueryNode...
Definition: ConcSession.cpp:2247
size_t m_ResultOffset
Definition: ConcSession.h:112
static void DecorateQueryResults(const string &ResultTypeStr, string &QueryResultString)
adds header and footer to QueryResultStr according to format ResultTypeStr
Definition: ConcSession.cpp:1208
thread-safe pseudo-random number stream using drand48() & friends
Definition: ddcRandom.h:38
void InitSortByContext(const CQuery *pQuery, const CDDCFilterWithBounds &Filter) const
Definition: ConcSession.cpp:1448
uint32_t DWORD
Definition: utilit.h:105
size_t m_CurrentSearchPeriodNo
The index of the current subcorpora, which is now being processed.
Definition: ConcSession.h:127
string m_QueryResultStr
the result of the query (its format depends upon m_ResultFormat)
Definition: ConcSession.h:96
DDCFormatTypeEnum m_ResultFormat
the format of query result
Definition: ConcSession.h:82
bool GetContextJson(int StartBreakNo, int EndBreakNo, const DWORD CurrFileNo, string &js) const
append json hit strings [StartBreakNo, EndBreakNo) without highlighting to js
Definition: ConcSession.cpp:673
const ddcBreakVector & GetBreaks() const
GetBreaks returns the vector of current breaks (by m_pBreaks).
Definition: ConcSession.cpp:2326
static DDCFormatTypeEnum GetResultFormatByString(const string &ResultTypeStr)
converts a string to a FormatTypeEnum
Definition: ConcSession.cpp:2293
int GetBreakStarterLength() const
return the length of break prefix, where DDC should search (#within[sentence, 10]) ...
size_t GetOffsetHint(const size_t StartHitNo) const
get offset-hint appropriate for next page (after GenerateHitStrings()); used by CDDCLeafServer ...
Definition: ConcSession.cpp:1929
string m_AdditionalHitDelimiter
a delimiter which should be used between hits in m_QueryResultStr in the distributed model ...
Definition: ConcSession.h:130
TxDispatcher: name-based expansion dispatcher.
Definition: TermExpander.h:325
~CConcSession()
Definition: ConcSession.cpp:278
string JsonQueryString(const string &Query)
moo: return a JSONr epresentation of the query string Query (implicitly parses)
Definition: ConcSession.cpp:2406
bool IsUniversalCountQuery(CQuery *QueryRoot) const
check if CountQuery is a count(*) query suitable for use with GetUniversalCounts() ...
Definition: ConcSession.cpp:1924
Truly abstract (index-independent) representation of a parsed query Should eventually replace old ad...
Definition: Query.h:36
unsigned int m_RandomSeed
initial random-state components for m_pRandom
Definition: ConcSession.h:90
void SaveToCache(const string &Query, vector< size_t >::const_iterator start, vector< size_t >::const_iterator end)
stores Query to the cache
Definition: ConcSession.cpp:1989
TxDispatcher m_Txd
term expansion dispatcher; should define at least an entry for "default"
Definition: Concordance.h:299
void InitSortByRank(const CQuery *pQuery) const
Definition: ConcSession.cpp:1349
bool GetFileSnippets(const int HitNo, vector< COutputToken > &Tokens) const
creates snippets, concatenating contexts of found words
Definition: ConcSession.cpp:1001
CConcordance * m_pConcordance
m_pConcordance is the main (and the only) pointer to corpus indices and break collections. During the querying this pointer is used as a constant. Class CConcSession's original name "CConcHolder" was chosen because the class "holds" this pointer.
Definition: ConcSession.h:106