def testPhraseQuery(self): parser = CustomQueryParser("field", self.analyzer) query = parser.parse("singleTerm") self.assert_(TermQuery.instance_(query), "TermQuery") query = parser.parse("\"a phrase\"") self.assert_(SpanNearQuery.instance_(query), "SpanNearQuery")
def testIdRangeQuery(self): parser = CustomQueryParser("field", self.analyzer) query = parser.parse("id:[37 TO 346]") self.assertEqual("id:[0000000037 TO 0000000346]", query.toString("field"), "padded") searcher = IndexSearcher(self.directory, True) scoreDocs = searcher.search(query, 1000).scoreDocs self.assertEqual(310, len(scoreDocs)) print parser.parse("special:[term TO *]") print parser.parse("special:[* TO term]")
def testCustomQueryParser(self): parser = CustomQueryParser("field", self.analyzer) try: parser.parse("a?t") self.fail("Wildcard queries should not be allowed") except: # expected self.assert_(True) try: parser.parse("xunit~") self.fail("Fuzzy queries should not be allowed") except: # expected self.assert_(True)