Log message for revision 110742: LP #142478: normalize terms passed to ``PLexicon.queryLexicon`` o Use the lexicon's pipeline (e.g., case flattening, stop word removal, etc.).
Changed: U Zope/branches/2.12/doc/CHANGES.rst U Zope/branches/2.12/src/Products/ZCTextIndex/ZCTextIndex.py U Zope/branches/2.12/src/Products/ZCTextIndex/tests/testZCTextIndex.py -=- Modified: Zope/branches/2.12/doc/CHANGES.rst =================================================================== --- Zope/branches/2.12/doc/CHANGES.rst 2010-04-12 12:26:42 UTC (rev 110741) +++ Zope/branches/2.12/doc/CHANGES.rst 2010-04-12 12:26:43 UTC (rev 110742) @@ -8,7 +8,13 @@ 2.12.5 (unreleased) ------------------- +Bugs Fixed +++++++++++ +- LP #142478: normalize terms passed to ``PLexicon.queryLexicon`` using + the lexicon's pipeline (e.g., case flattening, stop word removal, etc.) + + 2.12.4 (2010-04-05) ------------------- Modified: Zope/branches/2.12/src/Products/ZCTextIndex/ZCTextIndex.py =================================================================== --- Zope/branches/2.12/src/Products/ZCTextIndex/ZCTextIndex.py 2010-04-12 12:26:42 UTC (rev 110741) +++ Zope/branches/2.12/src/Products/ZCTextIndex/ZCTextIndex.py 2010-04-12 12:26:43 UTC (rev 110742) @@ -358,7 +358,7 @@ """ if words: wids = [] - for word in words: + for word in self.parseTerms(words): wids.extend(self.globToWordIds(word)) words = [self.get_word(wid) for wid in wids] else: Modified: Zope/branches/2.12/src/Products/ZCTextIndex/tests/testZCTextIndex.py =================================================================== --- Zope/branches/2.12/src/Products/ZCTextIndex/tests/testZCTextIndex.py 2010-04-12 12:26:42 UTC (rev 110741) +++ Zope/branches/2.12/src/Products/ZCTextIndex/tests/testZCTextIndex.py 2010-04-12 12:26:43 UTC (rev 110742) @@ -691,7 +691,22 @@ self.assertEqual(list(info['page_range']), [0]) self.assertEqual(info['page_columns'], [['aaa', 'bbb']]) + def test_queryLexicon_uses_pipeline_for_normalization(self): + from Products.ZCTextIndex.Lexicon import CaseNormalizer + WORDS = 'aaa bbb ccc ddd eee fff ggg'.split() + lexicon = self._makeOne('test', 'Testing', CaseNormalizer()) + lexicon.sourceToWordIds(WORDS) + info = lexicon.queryLexicon(REQUEST=None, words=['AA*', 'Bbb*']) + self.assertEqual(info['page'], 0) + self.assertEqual(info['rows'], 20) + self.assertEqual(info['cols'], 4) + self.assertEqual(info['start_word'], 1) + self.assertEqual(info['end_word'], 2) + self.assertEqual(info['word_count'], 2) + self.assertEqual(list(info['page_range']), [0]) + self.assertEqual(info['page_columns'], [['aaa', 'bbb']]) + def test_suite(): s = unittest.TestSuite() for klass in (CosineIndexTests, OkapiIndexTests, _______________________________________________ Zope-Checkins maillist - Zope-Checkins@zope.org https://mail.zope.org/mailman/listinfo/zope-checkins