wildcard boosting

This commit is contained in:
Kuroshini 2019-11-20 17:01:17 +03:00
parent 45fee0355c
commit cd328186e1

View File

@ -71,14 +71,21 @@ class CustomSearchFilterBackend(SearchFilterBackend):
Q("match", **{k: v})
)
__queries.append(
Q('wildcard', **{k: f'*{search_term.lower()}*'})
Q('wildcard',
**{k: {
'value': f'*{search_term.lower()}*',
'boost': v.get('boost', 1) + 0.1
}
}
)
)
else:
__queries.append(
Q("match", **field_kwargs)
)
__queries.append(
Q('wildcard', **{field: f'*{search_term.lower()}*'})
Q('wildcard', **{field: {'value': f'*{search_term.lower()}*',
'boost': field_kwargs[field].get('boost', 1) + 0.1}})
)
else:
for field in view.search_fields:
@ -99,13 +106,20 @@ class CustomSearchFilterBackend(SearchFilterBackend):
Q("match", **{k: v})
)
__queries.append(
Q('wildcard', **{k: f'*{search_term.lower()}*'})
Q('wildcard',
**{k: {
'value': f'*{search_term.lower()}*',
'boost': v.get('boost', 1) + 0.1
}
}
)
)
else:
__queries.append(
Q("match", **field_kwargs)
)
__queries.append(
Q('wildcard', **{field: f'*{search_term.lower()}*'})
Q('wildcard', **{field: {'value': f'*{search_term.lower()}*',
'boost': field_kwargs[field].get('boost', 1) + 0.1}})
)
return __queries