Пример #1
0
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)
Пример #2
0
    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))
Пример #3
0
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)
Пример #4
0
    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))
Пример #5
0
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)
Пример #6
0
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
Пример #7
0
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
Пример #8
0
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