|
a/src/query/docseqdb.cpp |
|
b/src/query/docseqdb.cpp |
|
... |
|
... |
144 |
bool DocSequenceDb::setFiltSpec(const DocSeqFiltSpec &fs)
|
144 |
bool DocSequenceDb::setFiltSpec(const DocSeqFiltSpec &fs)
|
145 |
{
|
145 |
{
|
146 |
LOGDEB(("DocSequenceDb::setFiltSpec\n"));
|
146 |
LOGDEB(("DocSequenceDb::setFiltSpec\n"));
|
147 |
if (fs.isNotNull()) {
|
147 |
if (fs.isNotNull()) {
|
148 |
// We build a search spec by adding a filtering layer to the base one.
|
148 |
// We build a search spec by adding a filtering layer to the base one.
|
149 |
m_fsdata = RefCntr<Rcl::SearchData>(new Rcl::SearchData(Rcl::SCLT_AND));
|
149 |
m_fsdata = RefCntr<Rcl::SearchData>(
|
|
|
150 |
new Rcl::SearchData(Rcl::SCLT_AND, m_sdata->getStemLang()));
|
150 |
Rcl::SearchDataClauseSub *cl =
|
151 |
Rcl::SearchDataClauseSub *cl =
|
151 |
new Rcl::SearchDataClauseSub(Rcl::SCLT_SUB, m_sdata);
|
152 |
new Rcl::SearchDataClauseSub(Rcl::SCLT_SUB, m_sdata);
|
152 |
m_fsdata->addClause(cl);
|
153 |
m_fsdata->addClause(cl);
|
153 |
|
154 |
|
154 |
for (unsigned int i = 0; i < fs.crits.size(); i++) {
|
155 |
for (unsigned int i = 0; i < fs.crits.size(); i++) {
|
|
... |
|
... |
162 |
break;
|
163 |
break;
|
163 |
|
164 |
|
164 |
string reason;
|
165 |
string reason;
|
165 |
Rcl::SearchData *sd =
|
166 |
Rcl::SearchData *sd =
|
166 |
wasaStringToRcl(m_q->whatDb()->getConf(),
|
167 |
wasaStringToRcl(m_q->whatDb()->getConf(),
|
|
|
168 |
m_sdata->getStemLang(),
|
167 |
fs.values[i], reason);
|
169 |
fs.values[i], reason);
|
168 |
if (sd) {
|
170 |
if (sd) {
|
169 |
Rcl::SearchDataClauseSub *cl1 =
|
171 |
Rcl::SearchDataClauseSub *cl1 =
|
170 |
new Rcl::SearchDataClauseSub(Rcl::SCLT_SUB,
|
172 |
new Rcl::SearchDataClauseSub(Rcl::SCLT_SUB,
|
171 |
RefCntr<Rcl::SearchData>(sd));
|
173 |
RefCntr<Rcl::SearchData>(sd));
|