view search/search_apex.py @ 9:d1b54241a731

rewrite meeting fetcher
author drewp@bigasterisk.com
date Wed, 10 Jul 2024 12:25:06 -0700
parents f23b21bd0fce
children
line wrap: on
line source

from pprint import pprint
from typing import Iterable
from apexsearch import ApexSearch


class Search:

    def __init__(self):
        self.apex = ApexSearch('data/apex',
                               tables={
                                   "docs": {
                                       "content": ["phrase"],
                                       "title": "title",
                                       "extras": ["sourceFile", "pos"],
                                   }
                               },
                               id_field='id')

    def rebuild(self, docs: Iterable):
        self.apex.build_complete_index(lambda *a: docs)
        print('rebuild complete')

    def search(self, q: str):
        res = self.apex.search(q, target_number=100)
        pprint(res)
        for row in res['results']:
            yield {
                'title': row['title'],
                'snippetHtml': row['highlighted_content']
            }