J'essaye d'implémenter une version de python du java de http://searchhub.org/2010/04/18/refresh-getting-started-with-payloads/ using pylucene. Mon analyseur est en train de produire une lucene.InvalidArgsError sur l'appel init au DelimitedTokenFilterDelimitedPayloadFilter dans PyLucene?
La classe est ci-dessous, et toute aide est grandement appréciée. La version java compilée avec les fichiers JAR de la version 3.6 de pylucene fonctionne correctement.
import lucene
class PayloadAnalyzer(lucene.PythonAnalyzer):
encoder = None
def __init__(self, encoder):
lucene.PythonAnalyzer.__init__(self)
self.encoder = encoder
def tokenStream(self, fieldName, reader):
result = lucene.WhitespaceTokenizer(lucene.Version.LUCENE_CURRENT, reader)
result = lucene.LowerCaseFilter(lucene.Version.LUCENE_CURRENT, result)
result = lucene.DelimitedPayloadTokenFilter(result, '|', self.encoder)
return result
Mon problème initial avec les arguments est résolu si j'utilise le délimiteur par défaut à la place de '|': lucene.DelimitedTokenFilter.DEFAULT_DELIMITER. Cela ne semble pas résoudre mon problème. tout compile mais la charge utile revient toujours à 1.0. –