[pylucene-dev] ConstantScoreQuery
Marc Weeber
marc at weeber.net
Thu Aug 23 09:45:05 PDT 2007
hi,
The following code works for me:
hope this helps?!
best,
Marc
----------------
class AssociationFilter(object):
"""
create a PyLucene Query filter to compute an association score
between two items
"""
def __init__(self, source, target):
self._source = source
self._target = target
def bits(self, reader):
bits = PyLucene.BitSet(reader.maxDoc())
for id in [self._source, self._target]:
termDocs = reader.termDocs(PyLucene.Term('uid', id))
docs, freqs = termDocs.read(1)
if len(docs) == 1:
bits.set(docs[0])
return bits
filter = AssociationFilter(queryID, answerID)
hits = searcher.search(query, filter)
On 23-aug-2007, at 17:19, tsuraan at tsuraan.net wrote:
> Is it possible to create a ConstantScoreQuery using a python-
> defined filter? I'm trying the following, and I get the pasted error:
>
> >>> class MyFilter(object):
> ... def bits(self, reader):
> ... return BitSet()
> ...
> >>> f=MyFilter()
> >>> q=ConstantScoreQuery(f)
> Traceback (most recent call last):
> File "<stdin>", line 1, in ?
> pybackend.thirdparty.PyLucene.lnxpyd.PyLucene.InvalidArgsError:
> (<type 'PyLucene.ConstantScoreQuery'>, '__init__',
> (<__main__.MyFilter object at 0xb7cda14c>,))
>
>
> So, my other thought was maybe I need to inherit from the PyLucene
> Filter object, but that doesn't work either:
>
> >>> class MyFilter(Filter):
> ... def bits(self, reader):
> ... return BitSet()
> ...
> >>> f=MyFilter()
> Traceback (most recent call last):
> File "<stdin>", line 1, in ?
> pybackend.thirdparty.PyLucene.lnxpyd.PyLucene.InvalidArgsError:
> (<class '__main__.MyFilter'>, '__init__', ())
>
>
> So, am I missing something, or is ConstantScoreQuery currently only
> capable of using built-in filters?
>
> I'm using PyLucene 2.1.0-1 on Gentoo Linux with gcc 4.1.2; all
> tests and sample code works for me.
>
> _______________________________________________
> pylucene-dev mailing list
> pylucene-dev at osafoundation.org
> http://lists.osafoundation.org/mailman/listinfo/pylucene-dev
More information about the pylucene-dev
mailing list