[Zope-Checkins] CVS: Zope/lib/python/Products/PluginIndexes/TextIndexNG - TextIndexNG.py:1.2.2.47

Andreas Jung andreas@digicool.com
Wed, 27 Feb 2002 20:49:09 -0500


Update of /cvs-repository/Zope/lib/python/Products/PluginIndexes/TextIndexNG
In directory cvs.zope.org:/tmp/cvs-serv18318

Modified Files:
      Tag: ajung-textindexng-branch
	TextIndexNG.py 
Log Message:
full integration of converters into TextIndexNG


=== Zope/lib/python/Products/PluginIndexes/TextIndexNG/TextIndexNG.py 1.2.2.46 => 1.2.2.47 ===
 from Products.PluginIndexes import PluggableIndex       
 from Products.PluginIndexes.common.util import parseIndexRequest
-
+from OFS.content_types import guess_content_type
 from BTrees.IOBTree import IOBTree
 from BTrees.OOBTree import OOBTree
 from BTrees.IIBTree import IIBTree, IIBucket, IISet
@@ -111,7 +111,7 @@
     _all_options = ('useSplitter', 'splitterMaxLen', 'splitterIndexNumbers',
          'splitterSingleChars', 'splitterCasefolding', 'useStemmer', 'useOperator',
          'useGlobbing', 'lexicon', 'nearDistance', 'useSimilarity',
-         'stopWords', 'thesaurus', 'characterMapping', 'useConverter'
+         'stopWords', 'thesaurus', 'characterMapping', 'useConverters'
         )
 
     query_options = ("query","operator")
@@ -181,9 +181,8 @@
         # Normalizer: characterMapping
         self.charMapping   = getattr(extra,'characterMapping', None) or None
 
-
         # use converters from the ConvertersRegistry
-        self.useConverter = getattr(extra,'useConverter'), 0)
+        self.useConverters = getattr(extra,'useConverters',0) 
 
         if verbose: self.debugOn()
         else:       self.debugOff()
@@ -394,9 +393,18 @@
         except (AttributeError, TypeError):
             encoding = 'latin1'
 
-
         T("encoding")
 
+        # Document converter
+
+        if self.useConverters:
+            mimetype = guess_content_type(source, obj.getId())
+            
+            converter = ConverterRegistry.getConverterFor( mimetype )
+            if converter:
+                source = converter(source)
+
+        T('converter')
 
         # Split the text into a list of words