|
a/src/query/docseqdb.cpp |
|
b/src/query/docseqdb.cpp |
|
... |
|
... |
26 |
#include "log.h"
|
26 |
#include "log.h"
|
27 |
#include "wasatorcl.h"
|
27 |
#include "wasatorcl.h"
|
28 |
|
28 |
|
29 |
using std::list;
|
29 |
using std::list;
|
30 |
|
30 |
|
31 |
DocSequenceDb::DocSequenceDb(STD_SHARED_PTR<Rcl::Query> q, const string &t,
|
31 |
DocSequenceDb::DocSequenceDb(std::shared_ptr<Rcl::Query> q, const string &t,
|
32 |
STD_SHARED_PTR<Rcl::SearchData> sdata)
|
32 |
std::shared_ptr<Rcl::SearchData> sdata)
|
33 |
: DocSequence(t), m_q(q), m_sdata(sdata), m_fsdata(sdata),
|
33 |
: DocSequence(t), m_q(q), m_sdata(sdata), m_fsdata(sdata),
|
34 |
m_rescnt(-1),
|
34 |
m_rescnt(-1),
|
35 |
m_queryBuildAbstract(true),
|
35 |
m_queryBuildAbstract(true),
|
36 |
m_queryReplaceAbstract(false),
|
36 |
m_queryReplaceAbstract(false),
|
37 |
m_isFiltered(false),
|
37 |
m_isFiltered(false),
|
|
... |
|
... |
162 |
{
|
162 |
{
|
163 |
LOGDEB("DocSequenceDb::setFiltSpec\n" );
|
163 |
LOGDEB("DocSequenceDb::setFiltSpec\n" );
|
164 |
std::unique_lock<std::mutex> locker(o_dblock);
|
164 |
std::unique_lock<std::mutex> locker(o_dblock);
|
165 |
if (fs.isNotNull()) {
|
165 |
if (fs.isNotNull()) {
|
166 |
// We build a search spec by adding a filtering layer to the base one.
|
166 |
// We build a search spec by adding a filtering layer to the base one.
|
167 |
m_fsdata = STD_SHARED_PTR<Rcl::SearchData>(
|
167 |
m_fsdata = std::shared_ptr<Rcl::SearchData>(
|
168 |
new Rcl::SearchData(Rcl::SCLT_AND, m_sdata->getStemLang()));
|
168 |
new Rcl::SearchData(Rcl::SCLT_AND, m_sdata->getStemLang()));
|
169 |
Rcl::SearchDataClauseSub *cl =
|
169 |
Rcl::SearchDataClauseSub *cl =
|
170 |
new Rcl::SearchDataClauseSub(m_sdata);
|
170 |
new Rcl::SearchDataClauseSub(m_sdata);
|
171 |
m_fsdata->addClause(cl);
|
171 |
m_fsdata->addClause(cl);
|
172 |
|
172 |
|
|
... |
|
... |
186 |
m_sdata->getStemLang(),
|
186 |
m_sdata->getStemLang(),
|
187 |
fs.values[i], reason);
|
187 |
fs.values[i], reason);
|
188 |
if (sd) {
|
188 |
if (sd) {
|
189 |
Rcl::SearchDataClauseSub *cl1 =
|
189 |
Rcl::SearchDataClauseSub *cl1 =
|
190 |
new Rcl::SearchDataClauseSub(
|
190 |
new Rcl::SearchDataClauseSub(
|
191 |
STD_SHARED_PTR<Rcl::SearchData>(sd));
|
191 |
std::shared_ptr<Rcl::SearchData>(sd));
|
192 |
m_fsdata->addClause(cl1);
|
192 |
m_fsdata->addClause(cl1);
|
193 |
}
|
193 |
}
|
194 |
}
|
194 |
}
|
195 |
break;
|
195 |
break;
|
196 |
default:
|
196 |
default:
|