one more monkey patch for handling bytes array in text index
This commit is contained in:
parent
8d2f185d17
commit
c3efe7a6f9
1 changed files with 27 additions and 1 deletions
|
@ -38,6 +38,32 @@ def patched_decode(code):
|
||||||
zope.index.text.widcode.decode = patched_decode
|
zope.index.text.widcode.decode = patched_decode
|
||||||
|
|
||||||
|
|
||||||
|
from zope.index.text.baseindex import BaseIndex
|
||||||
|
from zope.index.text import widcode
|
||||||
|
from zope.index.text.setops import mass_weightedIntersection
|
||||||
|
def patched_search_phrase(self, phrase):
|
||||||
|
wids = self._lexicon.termToWordIds(phrase)
|
||||||
|
cleaned_wids = self._remove_oov_wids(wids)
|
||||||
|
if len(wids) != len(cleaned_wids):
|
||||||
|
# At least one wid was OOV: can't possibly find it.
|
||||||
|
return self.family.IF.BTree()
|
||||||
|
scores = self._search_wids(wids)
|
||||||
|
hits = mass_weightedIntersection(scores, self.family)
|
||||||
|
if not hits:
|
||||||
|
return hits
|
||||||
|
code = widcode.encode(wids)
|
||||||
|
result = self.family.IF.BTree()
|
||||||
|
for docid, weight in hits.items():
|
||||||
|
docwords = self._docwords[docid]
|
||||||
|
if isinstance(docwords, bytes): # PATCH
|
||||||
|
# byte-wise conversion to str:
|
||||||
|
docwords = ''.join(chr(b) for b in docwords)
|
||||||
|
if docwords.find(code) >= 0:
|
||||||
|
result[docid] = weight
|
||||||
|
return result
|
||||||
|
BaseIndex.search_phrase = patched_search_phrase
|
||||||
|
|
||||||
|
|
||||||
import zope.sendmail.zcml
|
import zope.sendmail.zcml
|
||||||
from zope.sendmail.interfaces import IMailer
|
from zope.sendmail.interfaces import IMailer
|
||||||
from zope.sendmail.mailer import SMTPMailer
|
from zope.sendmail.mailer import SMTPMailer
|
||||||
|
@ -67,5 +93,5 @@ def patched_rebuild(modulename, globalname, *args):
|
||||||
ZODB.broken.rebuild = patched_rebuild
|
ZODB.broken.rebuild = patched_rebuild
|
||||||
|
|
||||||
|
|
||||||
print("loops.patch: 4 monkey patches installed")
|
print("loops.patch: 5 monkey patches installed")
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue