Show
Ignore:
Timestamp:
02/03/2010 06:45:12 PM (7 months ago)
Author:
matt
Message:

Work on NUMERIC, DATETIME, and BOOLEAN field types.
Changes instances of test_index to testindex.

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • projects/whoosh/trunk/src/whoosh/qparser/default.py

    r404 r415  
    182182     
    183183    def get_term_text(self, field, text, **kwargs): 
    184         if not field.format: 
    185             raise Exception("%s field has no format" % field) 
    186          
    187184        # Just take the first token 
    188         for token in field.format.analyze(text, mode="query", **kwargs): 
    189             return token.text 
     185        for t in field.process_text(text, mode="query", **kwargs): 
     186            return t 
    190187     
    191188    def make_term(self, fieldname, text): 
    192189        field = self._field(fieldname) 
    193190        if field: 
    194             text = self.get_term_text(field, text) 
    195         if not text: 
     191            if field.parse_query: 
     192                return field.parse_query(fieldname, text) 
     193            else: 
     194                text = self.get_term_text(field, text) 
     195         
     196        if text is None: 
    196197            return NullQuery 
    197198        return self.termclass(fieldname, text) 
     
    200201        field = self._field(fieldname) 
    201202        if field: 
    202             texts = [t.text for t in field.format.analyze(text, mode="query")] 
     203            if field.parse_query: 
     204                return field.parse_query(fieldname, text) 
     205             
     206            texts = list(field.process_text(text, mode="query")) 
    203207            if not texts: 
    204208                return self.termclass(fieldname, u'') 
     
    213217        field = self._field(fieldname) 
    214218        if field: 
    215             ptext = self.get_term_text(field, text, tokenize=False, removestops=False) 
    216             if ptext: text = ptext 
     219            text = self.get_term_text(field, text, tokenize=False, removestops=False) 
    217220        return Wildcard(fieldname, text) 
    218221