1 # ====================================================================
2 # Licensed under the Apache License, Version 2.0 (the "License");
3 # you may not use this file except in compliance with the License.
4 # You may obtain a copy of the License at
6 # http://www.apache.org/licenses/LICENSE-2.0
8 # Unless required by applicable law or agreed to in writing, software
9 # distributed under the License is distributed on an "AS IS" BASIS,
10 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11 # See the License for the specific language governing permissions and
12 # limitations under the License.
13 # ====================================================================
15 from lia.common.LiaTestCase import LiaTestCase
18 SimpleAnalyzer, MultiFieldQueryParser, IndexSearcher, BooleanClause, \
22 class MultiFieldQueryParserTest(LiaTestCase):
24 def testDefaultOperator(self):
26 SHOULD = BooleanClause.Occur.SHOULD
27 query = MultiFieldQueryParser.parse(Version.LUCENE_CURRENT,
28 "development", ["title", "subject"],
32 searcher = IndexSearcher(self.directory, True)
33 scoreDocs = searcher.search(query, 50).scoreDocs
35 self.assertHitsIncludeTitle(searcher, scoreDocs,
36 "Java Development with Ant")
38 # has "development" in the subject field
39 self.assertHitsIncludeTitle(searcher, scoreDocs,
40 "Extreme Programming Explained")
42 def testSpecifiedOperator(self):
44 MUST = BooleanClause.Occur.MUST
45 query = MultiFieldQueryParser.parse(Version.LUCENE_CURRENT,
46 "development", ["title", "subject"],
50 searcher = IndexSearcher(self.directory, True)
51 scoreDocs = searcher.search(query, 50).scoreDocs
53 self.assertHitsIncludeTitle(searcher, scoreDocs,
54 "Java Development with Ant")
55 self.assertEqual(1, len(scoreDocs), "one and only one")