28 |
28 |
29 namespace Cpix { |
29 namespace Cpix { |
30 |
30 |
31 IQueryParser::~IQueryParser() {} |
31 IQueryParser::~IQueryParser() {} |
32 |
32 |
33 CLuceneQueryParser::CLuceneQueryParser(const wchar_t* defaultField, |
33 LuceneQueryParser::LuceneQueryParser(const wchar_t* defaultField, |
34 lucene::analysis::Analyzer& analyzer) |
34 lucene::analysis::Analyzer& analyzer) |
35 : parser_() { |
35 : parser_() { |
36 parser_.reset(_CLNEW lucene::queryParser::QueryParser(defaultField, &analyzer)); |
36 parser_.reset(_CLNEW lucene::queryParser::QueryParser(defaultField, &analyzer)); |
37 } |
37 } |
38 |
38 |
39 CLuceneQueryParser::~CLuceneQueryParser() {} |
39 LuceneQueryParser::~LuceneQueryParser() {} |
40 |
40 |
41 std::auto_ptr<lucene::search::Query> CLuceneQueryParser::parse(const wchar_t* query) { |
41 std::auto_ptr<lucene::search::Query> LuceneQueryParser::parse(const wchar_t* query) { |
42 return std::auto_ptr<lucene::search::Query>( parser_->parse(query) ); |
42 return std::auto_ptr<lucene::search::Query>( parser_->parse(query) ); |
43 } |
43 } |
44 |
44 |
45 const wchar_t* CLuceneQueryParser::getField() const { |
45 const wchar_t* LuceneQueryParser::getField() const { |
46 return parser_->getField(); |
46 return parser_->getField(); |
47 } |
47 } |
48 |
48 |
49 void CLuceneQueryParser::setDefaultOperator(cpix_QP_Operator op) { |
49 void LuceneQueryParser::setDefaultOperator(cpix_QP_Operator op) { |
50 parser_->setDefaultOperator(static_cast<int>(op)); |
50 parser_->setDefaultOperator(static_cast<int>(op)); |
51 } |
51 } |
52 |
52 |
53 PrefixOptQueryParser::PrefixOptQueryParser(std::auto_ptr<IQueryParser> parser) |
53 PrefixOptQueryParser::PrefixOptQueryParser(std::auto_ptr<IQueryParser> parser) |
54 : |
54 : |
70 |
70 |
71 void PrefixOptQueryParser::setDefaultOperator(cpix_QP_Operator op) { |
71 void PrefixOptQueryParser::setDefaultOperator(cpix_QP_Operator op) { |
72 parser_->setDefaultOperator(op); |
72 parser_->setDefaultOperator(op); |
73 } |
73 } |
74 |
74 |
75 CLuceneMultiFieldQueryParser::CLuceneMultiFieldQueryParser( |
75 LuceneMultiFieldQueryParser::LuceneMultiFieldQueryParser( |
76 const wchar_t** fields, |
76 const wchar_t** fields, |
77 lucene::analysis::Analyzer& analyzer, |
77 lucene::analysis::Analyzer& analyzer, |
78 lucene::queryParser::BoostMap& boostMap) |
78 lucene::queryParser::BoostMap& boostMap) |
79 : parser_() { |
79 : parser_() { |
80 parser_.reset( |
80 parser_.reset( |
81 _CLNEW lucene::queryParser::MultiFieldQueryParser( fields, &analyzer, &boostMap )); |
81 _CLNEW lucene::queryParser::MultiFieldQueryParser( fields, &analyzer, &boostMap )); |
82 |
82 |
83 } |
83 } |
84 |
84 |
85 CLuceneMultiFieldQueryParser::~CLuceneMultiFieldQueryParser() {} |
85 LuceneMultiFieldQueryParser::~LuceneMultiFieldQueryParser() {} |
86 |
86 |
87 std::auto_ptr<lucene::search::Query> |
87 std::auto_ptr<lucene::search::Query> |
88 CLuceneMultiFieldQueryParser::parse(const wchar_t* query) { |
88 LuceneMultiFieldQueryParser::parse(const wchar_t* query) { |
89 return std::auto_ptr<lucene::search::Query>( parser_->parse( query ) ); |
89 return std::auto_ptr<lucene::search::Query>( parser_->parse( query ) ); |
90 |
90 |
91 } |
91 } |
92 |
92 |
93 const wchar_t* CLuceneMultiFieldQueryParser::getField() const { |
93 const wchar_t* LuceneMultiFieldQueryParser::getField() const { |
94 THROW_CPIXEXC("Multi field query parser does not support getField operation"); |
94 THROW_CPIXEXC("Multi field query parser does not support getField operation"); |
95 } |
95 } |
96 |
96 |
97 void CLuceneMultiFieldQueryParser::setDefaultOperator(cpix_QP_Operator op) { |
97 void LuceneMultiFieldQueryParser::setDefaultOperator(cpix_QP_Operator op) { |
98 parser_->setDefaultOperator(static_cast<int>(op)); |
98 parser_->setDefaultOperator(static_cast<int>(op)); |
99 } |
99 } |
100 |
100 |
101 IQueryParser* CreateCLuceneQueryParser(const wchar_t* defaultField, |
101 IQueryParser* CreateCLuceneQueryParser(const wchar_t* defaultField, |
102 lucene::analysis::Analyzer* analyzer) { |
102 lucene::analysis::Analyzer* analyzer) { |
103 return |
103 return |
104 new PrefixOptQueryParser( |
104 new PrefixOptQueryParser( |
105 std::auto_ptr<IQueryParser>( |
105 std::auto_ptr<IQueryParser>( |
106 new CLuceneQueryParser(defaultField, *analyzer))); |
106 new LuceneQueryParser(defaultField, *analyzer))); |
107 } |
107 } |
108 |
108 |
109 IQueryParser* CreateCLuceneMultiFieldQueryParser( |
109 IQueryParser* CreateCLuceneMultiFieldQueryParser( |
110 const wchar_t* fields[], |
110 const wchar_t* fields[], |
111 lucene::analysis::Analyzer* analyzer, |
111 lucene::analysis::Analyzer* analyzer, |
112 lucene::queryParser::BoostMap* boostMap) { |
112 lucene::queryParser::BoostMap* boostMap) { |
113 return |
113 return |
114 new PrefixOptQueryParser( |
114 new PrefixOptQueryParser( |
115 std::auto_ptr<IQueryParser>( |
115 std::auto_ptr<IQueryParser>( |
116 new CLuceneMultiFieldQueryParser(fields, |
116 new LuceneMultiFieldQueryParser(fields, |
117 *analyzer, |
117 *analyzer, |
118 *boostMap))); |
118 *boostMap))); |
119 |
119 |
120 } |
120 } |
121 |
121 |