Further work for dealing with common words and punctuation.

This commit is contained in:
John Schember 2013-08-03 18:16:22 -04:00
parent a043e21c8e
commit b9307dd4da

View File

@ -451,11 +451,15 @@ class SearchFilter(SearchQueryParser):
vals = accessor(sr).split(',')
elif locvalue in ('author2', 'title2'):
m = self.IN_MATCH
vals = re.sub(r'(^|\s)(and|not|or|a|the|is|of)(\s|$)', ' ', accessor(sr))
vals = re.sub('[.,!@#$%^&*\(\)\'"\[\]]', ' ', vals)
def field_trimmer(field):
field = re.sub(r'(^|\s)(and|not|or|a|the|is|of)(\s|$)', ' ', field)
field = re.sub('[.,!@#$%^&*\(\)\'"\[\]]', ' ', field)
return field
vals = field_trimmer(accessor(sr))
vals = vals.split(' ')
vals = [x for x in vals if x]
final_query = query.lower()
final_query = field_trimmer(query.lower())
final_query = re.sub('[ ]{2,}', ' ', final_query)
else:
vals = [accessor(sr)]
if self._match(final_query, vals, m):