List Info

Thread: SV: Unknown filterproblem




SV: Unknown filterproblem
user name
2006-03-07 14:45:55
Looks like creating a new token works....but in the
PorterStemFilter it is
done by token.termText = "new text",
Is this a bug in PyLucene?

Works:

class integerFilter(object):

    def __init__(self, tokenStream):
        self.input = tokenStream

    def next(self):
        token = self.input.next()
        if token is None:
            return None
        token.termText =
NumberUtils.pad(int(token.termText()))
        return Token(token.termText,token.startOffset(),
token.endOffset(),
token.type())  

-----Opprinnelig melding-----
Fra: pylucene-dev-bouncesosafoundation.org
[mailto:pylucene-dev-bouncesosafoundation.org] På vegne
av Trond Aksel
Myklebust
Sendt: 7. mars 2006 15:20
Til: pylucene-devosafoundation.org
Emne: [pylucene-dev] Unknown filterproblem

I got an analyzer which, if the fieldname is integer, adds a
"integerfilter"
to pad the number. 
The problem is that though the padding is done, I am not
getting the padded
number as output. 

class myAnalyzer(object):    
    def __init__(self):
        pass
    def tokenStream(self, fieldName, reader):
        tokenStream =
StandardFilter(StandardTokenizer(reader)) 
        if fieldName == "integer":
            tokenStream = integerFilter(tokenStream)
            print tokenStream
        return tokenStream
        
class integerFilter(object):
    def __init__(self, tokenStream):
        self.input = tokenStream
    def next(self):
        token = self.input.next()
        if token is None:
            return None
        token.termText =
NumberUtils.pad(int(token.termText()))
        print token.termText
        return token
        
analyzer = myAnalyzer.myAnalyzer()
directory = FSDirectory.getDirectory(LuceneDir, False)
searcher =
IndexSearcher(directory) qParser =
wrapAnalyzer(self.analyzer).queryParser(CustomQueryParser.Cu
stomQueryParser(
), defField)
print qParser.parseQuery("integer:200000")

Output:
myAnalyzer: <Modules.Lucene.integerFilter.integerFilter
object at
0x01AA7890>
IntegerFilter: 0000200000
qParser: integer:200000

As you can see the integerfilter is added, and the number is
padded, but the
parser returns the number without the padding....
Anyone who knows what is wrong?


_______________________________________________
pylucene-dev mailing list
pylucene-devosafoundation.org
http://lists.osafoundation.org/mailman/listinfo/pylu
cene-dev




_______________________________________________
pylucene-dev mailing list
pylucene-devosafoundation.org
http://lists.osafoundation.org/mailman/listinfo/pylu
cene-dev
[1]

about | contact  Other archives ( Real Estate discussion Medical topics )