from lxml.html.clean import clean_html, Cleaner import settings import pysolr from .convert import post_to_solr, member_to_solr from urllib.parse import urljoin from fet2020api import fet2020memberapi, fet2020api import yaml from .solr_to_objects import result_to_object fet = fet2020api(urljoin(settings.TARGET, "api/posts/"), pk="slug") fetmember = fet2020memberapi(urljoin(settings.TARGET, "api/members/")) class SolrFet2020: def __init__(self): self.solr = pysolr.Solr( urljoin(settings.SOLR_HOST, "/solr/core"), always_commit=True ) def reindex(self): self.solr.delete(q="*:*") p = post_to_solr(fet.find({"slug": ""})) self.solr.add(p) m = member_to_solr(fetmember.find({"nickname": ""})) # search all members self.solr.add(m) def reindextest(self): m = fetmember.find({"nickname": ""}) print(m) def search(self, query): querystring = "text_txt:*%s* title_txt:*%s*^2 tags_tkn:*%s*^2" % ( query, query, query, ) r = self.solr.search( querystring, sort="score desc, date_dt desc", **{ "hl": "true", "hl.fragsize": 100, "hl.fl": "*", "hl.maxAnalyzedChars": -1, "hl.snippets": 10, } ) links = result_to_object(r) # print(yaml.dump(r)) return links, r.hits