Allow additional results to be passed in

This commit is contained in:
Daoud Clarke 2023-11-20 14:54:11 +00:00
parent c1489a27cf
commit 06c1958503
2 changed files with 16 additions and 4 deletions

View file

@ -118,17 +118,17 @@ class Ranker:
def order_results(self, terms, pages, is_complete):
pass
def search(self, s: str):
def search(self, s: str, additional_results: list[Document]):
results, terms, _ = self.get_results(s)
is_complete = s.endswith(' ')
pattern = get_query_regex(terms, is_complete, False)
formatted_results = []
for result in results:
for result in additional_results + results:
formatted_result = format_result_with_pattern(pattern, result)
formatted_results.append(formatted_result)
logger.info("Return results: %r", formatted_results)
logger.info("Return results: %d", len(formatted_results))
return formatted_results
def complete(self, q: str):

View file

@ -88,7 +88,19 @@ class Activity:
def _get_results_and_activity(request):
query = request.GET.get("q")
if query:
results = ranker.search(query)
# There may be extra results in the request that we need to add in
# format is ?enhanced=google&title=title1&url=url1&extract=extract1&title=title2&url=url2&extract=extract2
# enhanced = request.GET.get("enhanced")
titles = request.GET.getlist(f"title")
urls = request.GET.getlist(f"url")
extracts = request.GET.getlist(f"extract")
additional_results = [
Document(title=title, url=url, extract=extract, score=0.0)
for title, url, extract in zip(titles, urls, extracts)
]
results = ranker.search(query, additional_results=additional_results)
activity = None
else:
results = None