def find_by_place_or_kwords(name, kwords, loc_boost=None, start=0, max=None, accounts=None, event=None): """docstring for find_by_place_or_kwords""" conn = Solr(settings.SOLR_URL) if name: return find_by_place(name, kwords, loc_boost, start, max, accounts, event) # keywords only kw = { 'start': start, 'rows': minmax(0, settings.SOLR_ROWS, max, settings.SOLR_ROWS), 'fl': '*,score', 'qt': 'resources', } fq = _make_fq(event, accounts) # example 'fq': '(event_start:[NOW/DAY TO *] OR event_end:[NOW/DAY TO *]) AND accounts:4d9b99d889cb16665c000000' if fq: kw['fq'] = fq return None, conn.search(kwords.strip() if kwords else '', **kw)
def test_utils_minmax(self): from ecutils.utils import minmax self.assertEqual(2, minmax(-2, 9000, 2)) self.assertEqual(-2, minmax(-2, 9000, -3)) self.assertEqual(9000, minmax(-2, 9000, 9000)) self.assertEqual(9000, minmax(-2, 9000, 9001)) self.assertEqual(90, minmax(80, 9000, None, default=90)) self.assertEqual(9000, minmax(80, 9000, None, default=9001)) self.assertEqual(80, minmax(80, 9000, None, default=-18))
def find_by_place_or_kwords(name, kwords, loc_boost=None, start=0, max=None, accounts=None): """docstring for find_by_place_or_kwords""" conn = Solr(settings.SOLR_URL) if name: return find_by_place(name, kwords, loc_boost, start, max, accounts) # keywords only kw = { 'start': start, 'rows': minmax(0, settings.SOLR_ROWS, max, settings.SOLR_ROWS), 'fl': '*,score', 'qt': 'resources', } return None, conn.search(kwords.strip() or '*:*', **kw)
def find_by_place_or_kwords(name, kwords, loc_boost=None, start=0, max=None, accounts=None, event=None): """docstring for find_by_place_or_kwords""" conn = Solr(settings.SOLR_URL) if name: return find_by_place(name, kwords, loc_boost, start, max, accounts, event) # keywords only kw = { 'start': start, 'rows': minmax(0, settings.SOLR_ROWS, max, settings.SOLR_ROWS), 'fl': '*,score', 'qt': 'resources', } fq = _make_fq(event, accounts) # example 'fq': '(event_start:[NOW/DAY TO *] OR event_end:[NOW/DAY TO *]) AND accounts:4d9b99d889cb16665c000000' if fq: kw['fq'] = fq return None, conn.search(kwords.strip() or '*:*', **kw)
def find_by_place(name, kwords, loc_boost=None, start=0, max=None, accounts=None, event=None): conn = Solr(settings.SOLR_URL) loc = get_place_for_postcode(name) or get_place_for_placename(name) if loc: kw = { 'start': start, 'rows': minmax(0, settings.SOLR_ROWS, max, settings.SOLR_ROWS), 'fl': '*,score', # 'fq': 'accounts:(4d9c3ced89cb162e5e000000 OR 4d9b99d889cb16665c000000) ', 'qt': 'resources', 'sfield': 'pt_location', 'pt': lat_lon_to_str(loc['lat_lon']), 'bf': 'recip(geodist(),2,200,20)^%s' % (loc_boost or settings.SOLR_LOC_BOOST_DEFAULT), 'sort': 'score desc', } fq = _make_fq(event, accounts) if fq: kw['fq'] = fq return loc['lat_lon'], conn.search(kwords.strip() if kwords else '', **kw) else: return None, None
def find_by_place(name, kwords, loc_boost=None, start=0, max=None, accounts=None): conn = Solr(settings.SOLR_URL) loc = get_place_for_postcode(name) or get_place_for_placename(name) if loc: kw = { 'start': start, 'rows': minmax(0, settings.SOLR_ROWS, max, settings.SOLR_ROWS), 'fl': '*,score', # 'fq': 'accounts:(4d9c3ced89cb162e5e000000 OR 4d9b99d889cb16665c000000) ', 'qt': 'resources', 'sfield': 'pt_location', 'pt': lat_lon_to_str(loc['lat_lon']), 'bf': 'recip(geodist(),2,200,20)^%s' % (loc_boost or settings.SOLR_LOC_BOOST_DEFAULT), 'sort': 'score desc', } if accounts: kw['fq'] = 'accounts:(%s)'% ' OR '.join(accounts) return loc['lat_lon'], conn.search(kwords.strip() or '*:*', **kw) else: return None, None
def find_by_place(name, kwords, loc_boost=None, start=0, max=None, accounts=None, collections=None, event=None, res_type=settings.SOLR_RES): loc = get_or_create_location(name) if loc: kw = { 'start': start, 'rows': minmax(0, settings.SOLR_ROWS, max, settings.SOLR_ROWS), 'fl': '*,score', # 'fq': 'accounts:(4d9c3ced89cb162e5e000000 OR 4d9b99d889cb16665c000000) ', 'qt': 'resources', 'sfield': 'pt_location', 'pt': lat_lon_to_str(loc['lat_lon']), 'bf': 'recip(geodist(),2,200,20)^%s' % (loc_boost or settings.SOLR_LOC_BOOST_DEFAULT), 'sort': 'score desc', } fq = _make_fq(event, accounts, collections, res_type) if fq: kw['fq'] = fq conn = Solr(settings.SOLR_URL) return loc, conn.search(kwords.strip() if kwords else '', **kw) else: return None, None