From 9b2db79f9728ca8a0f2e2e254f6998d92444fa52 Mon Sep 17 00:00:00 2001 From: dockes Date: Fri, 19 Jan 2007 10:22:06 +0000 Subject: [PATCH] add direct qstring to rcl function --- src/query/wasatorcl.cpp | 26 ++++++++++++++++++++------ src/query/wasatorcl.h | 4 +++- 2 files changed, 23 insertions(+), 7 deletions(-) diff --git a/src/query/wasatorcl.cpp b/src/query/wasatorcl.cpp index 00e7d631..0e4f540a 100644 --- a/src/query/wasatorcl.cpp +++ b/src/query/wasatorcl.cpp @@ -1,5 +1,5 @@ #ifndef lint -static char rcsid[] = "@(#$Id: wasatorcl.cpp,v 1.4 2007-01-17 14:06:22 dockes Exp $ (C) 2006 J.F.Dockes"; +static char rcsid[] = "@(#$Id: wasatorcl.cpp,v 1.5 2007-01-19 10:22:06 dockes Exp $ (C) 2006 J.F.Dockes"; #endif #ifndef TEST_WASATORCL @@ -8,6 +8,20 @@ static char rcsid[] = "@(#$Id: wasatorcl.cpp,v 1.4 2007-01-17 14:06:22 dockes Ex #include "searchdata.h" #include "wasatorcl.h" +Rcl::SearchData *wasaStringToRcl(const string &qs, string &reason) +{ + StringToWasaQuery parser; + WasaQuery *wq = parser.stringToQuery(qs, reason); + if (wq == 0) + return 0; + Rcl::SearchData *rq = wasaQueryToRcl(wq); + if (rq == 0) { + reason = "Failed translating wasa query structure to recoll"; + return 0; + } + return rq; +} + Rcl::SearchData *wasaQueryToRcl(WasaQuery *wasa) { if (wasa == 0) @@ -148,14 +162,14 @@ int main(int argc, char **argv) bool runQuery(Rcl::Db &rcldb, const string &qs) { - StringToWasaQuery parser; string reason; - WasaQuery *wq = parser.stringToQuery(qs, reason); - RefCntr rq(wasaQueryToRcl(wq)); - if (!rq.getptr()) + RefCntr rq(wasaStringToRcl(qs, reason)); + if (!rq.getptr()) { + cerr << "Query string interpretation failed: " << reason << endl; return false; + } - rcldb.setQuery(rq); + rcldb.setQuery(rq, Rcl::Db::QO_STEM); int offset = 0; int limit = 100; cout << "Recoll query: " << rq->getDescription() << endl; diff --git a/src/query/wasatorcl.h b/src/query/wasatorcl.h index d6211877..6f554266 100644 --- a/src/query/wasatorcl.h +++ b/src/query/wasatorcl.h @@ -1,6 +1,6 @@ #ifndef _WASATORCL_H_INCLUDED_ #define _WASATORCL_H_INCLUDED_ -/* @(#$Id: wasatorcl.h,v 1.3 2006-12-10 17:03:08 dockes Exp $ (C) 2006 J.F.Dockes */ +/* @(#$Id: wasatorcl.h,v 1.4 2007-01-19 10:22:06 dockes Exp $ (C) 2006 J.F.Dockes */ #include using std::string; @@ -8,6 +8,8 @@ using std::string; #include "rcldb.h" #include "searchdata.h" +extern Rcl::SearchData *wasaStringToRcl(const string& query, string &reason); +class WasaQuery; extern Rcl::SearchData *wasaQueryToRcl(WasaQuery *wasa); #endif /* _WASATORCL_H_INCLUDED_ */