def test_metafilter_resource_type_article():
    filter = f.overlap_filter(field='resource-type', values=['article'], min=1)
    candidates = CLIENT.get_candidates('b402ff2a76968f1e8867f52a876690b6',
                                       filter=f.and_filter(
                                           f.named_filter('GLOBAL'), filter),
                                       limit=1000,
                                       sort_by=SortStrategy.POP_1D)
    assert len(candidates) == 1000
def test_metafilter_resource_type_article():
    filter = f.overlap_filter(field='resource-type', values=['article'], min=1)
    candidates = CLIENT.get_candidates('70ec7833a06f2b6989747149874bb74d',
                                       filter=f.and_filter(
                                           f.named_filter('GLOBAL'), filter),
                                       limit=1000,
                                       sort_by=SortStrategy.POP_1D)
    assert len(candidates) == 1000
def test_metafilter_resource_type_article():
    filter = f.overlap_filter(field='resource-type', values=['article'], min=1)
    candidates = CLIENT.get_candidates('324fa582528ea3dbc96bd7e94a2d5b61',
                                       filter=f.and_filter(
                                           f.named_filter('GLOBAL'), filter),
                                       limit=1000,
                                       sort_by=SortStrategy.POP_1D)
    assert len(candidates) == 1000
Beispiel #4
0
def test_metafilter_resource_type_article():
    filter = f.overlap_filter(field='resource-type', values=['article'], min=1)
    candidates = CLIENT.get_candidates('9b69d8fc8b441b43d493d713e5703ada',
                                       filter=f.and_filter(
                                           f.named_filter('GLOBAL'), filter),
                                       limit=1000,
                                       sort_by=SortStrategy.POP_1D)
    assert len(candidates) == 1000
Beispiel #5
0
def test_metafilter_resource_type_article():
    filter = f.overlap_filter(field='resource-type', values=['article'], min=1)
    candidates = CLIENT.get_candidates('green-rush-daily',
                                       filter=f.and_filter(
                                           f.named_filter('GLOBAL'), filter),
                                       limit=1000,
                                       sort_by=SortStrategy.POP_1D)
    assert len(candidates) == 1000
Beispiel #6
0
def test_metafilter_resource_type_all():
    filter = f.overlap_filter(field='resource-type', values=['all'], min=1)
    candidates = CLIENT.get_candidates("wide-open-spaces",
                                       filter=f.and_filter(
                                           f.named_filter('GLOBAL'), filter),
                                       limit=100,
                                       sort_by=SortStrategy.POP_1D)
    assert len(candidates) > 0
def test_metafilter_resource_type_article():
    filter = f.overlap_filter(field='resource-type', values=['article'], min=1)
    candidates = CLIENT.get_candidates('565a3d0d5b838bc0005f81a706afdec2',
                                       filter=f.and_filter(
                                           f.named_filter('GLOBAL'), filter),
                                       limit=1000,
                                       sort_by=SortStrategy.POP_1D)
    assert len(candidates) == 1000
Beispiel #8
0
def test_metafilter_resource_type_article():
    filter = f.overlap_filter(field='resource-type', values=['article'], min=1)
    candidates = CLIENT.get_candidates('1a1e951c0be6ac5f7a57c617f1160972',
                                       filter=f.and_filter(
                                           f.named_filter('GLOBAL'), filter),
                                       limit=1000,
                                       sort_by=SortStrategy.POP_1D)
    assert len(candidates) > 10000
Beispiel #9
0
def test_metafilter_resource_type_article():
    filter = f.overlap_filter(field='resource-type', values=['article'], min=1)
    candidates = CLIENT.get_candidates('3c499a166380645f83154eb95983ed96',
                                       filter=f.and_filter(
                                           f.named_filter('GLOBAL'), filter),
                                       limit=1000,
                                       sort_by=SortStrategy.POP_1D)
    assert len(candidates) == 1000
Beispiel #10
0
def test_metafilter_resource_type_article():
    filter = f.overlap_filter(field='resource-type', values=['article'], min=1)
    candidates = CLIENT.get_candidates('8bf9fa832a2cf351cf1a19098038459d',
                                       filter=f.and_filter(
                                           f.named_filter('GLOBAL'), filter),
                                       limit=1000,
                                       sort_by=SortStrategy.POP_1D)
    assert len(candidates) == 1000
Beispiel #11
0
def test_metafilter_resource_type_article():
    filter = f.overlap_filter(field='resource-type', values=['article'], min=1)
    candidates = CLIENT.get_candidates('1154d080d208325324fa2f30fa1c1c64',
                                       filter=f.and_filter(
                                           f.named_filter('GLOBAL'), filter),
                                       limit=1000,
                                       sort_by=SortStrategy.POP_1D)
    assert len(candidates) == 1000
def test_global_filter_and_resource_type(customer_name, site_id):
    filter = f.overlap_filter(field='resource-type', values=['nyc'], min=1)
    candidates = CLIENT.get_candidates(site_id,
                                       filter=f.and_filter(
                                           f.named_filter('GLOBAL'), filter),
                                       limit=100,
                                       sort_by=SortStrategy.POP_1D)
    for c in candidates:
        print(c)
        assert c.event_counts is not None or c.base_score is not None
Beispiel #13
0
def test_gazette():
    filter_resource_type = ff.overlap_filter(field='resource-type', values={'thegazette_sports'}, min=1, match_type=MatchType.CONTAINS)
    filter_meta_global = ff.and_filter(filter_resource_type, schema.named_filters['GLOBAL'])

    candidates = client.get_candidates(site_id=site_id, filter=filter_meta_global, limit=100, sort_by=SortStrategy.POP_1D)

    assert len(candidates) == 100

    resource_ids = [candidate.resource_id for candidate in candidates]
    resources = client.get_resources(site_id=site_id, ids=resource_ids).resources
    resource_types = [resource.to_jsonobj()['fields']['resource-type'] for resource in resources]
    for resource_type in resource_types:
        assert 'thegazette_sports' in resource_type
Beispiel #14
0
def test_upout_resource_type_nyc():
    site_id = "7a0f18a6274829b2e0710f57eea2b6d0"
    filter = f.overlap_filter(field='resource-type', values=['nyc'], min=1)
    candidates = CLIENT.get_candidates(site_id,
                                       filter=f.and_filter(
                                           f.named_filter('GLOBAL'), filter),
                                       limit=100,
                                       sort_by=SortStrategy.POP_1D)
    assert len(candidates) == 100

    for c in candidates:
        print(c)
        assert (c.event_counts is not None or c.base_score is not None)
Beispiel #15
0
def test_metafilter_resource_type_article():
    filter = f.overlap_filter(field='resource-type', values=['article'], min=1)
    candidates = CLIENT.get_candidates('774367e2d0fa1515ca1e3580188b7d03', filter=f.and_filter(f.named_filter('GLOBAL'), filter), limit=1000, sort_by=SortStrategy.POP_1D)
    assert len(candidates) == 1000
Beispiel #16
0
def test_metafilter_resource_type_article():
    filter = f.overlap_filter(field='resource-type', values=['article'], min=1)
    candidates = CLIENT.get_candidates('e22d241e217d40fe9451573dd9bd319f', filter=f.and_filter(f.named_filter('GLOBAL'), filter), limit=1000, sort_by=SortStrategy.POP_1D)
    assert len(candidates) == 1000
from bt_candidates.client import Client
from bt_candidates.wiring import default_filter_factory as ff
from bt_candidates.filters import MatchType
from bt_candidates.sorting import SortStrategy

client = Client('candidates.magic.boomtrain.com')
schema = client.get_schema('atlanta-black-star')

filt = ff.or_filter(
    ff.overlap_filter('title', ['Yohannes',  'IV'], match_type=MatchType.EXACT, min=2, max=2),
    ff.overlap_filter('title', ['Search', 'chicago'], match_type=MatchType.EXACT, min=2, max=2),
    ff.overlap_filter('title', ['african', 'history', 'month'], match_type=MatchType.EXACT, min=3, max=3)
)

candidates = client.get_candidates('atlanta-black-star', filt, limit=25)
print(len(candidates))
for c in candidates:
    print(c)

print('======================================================')

import itertools as it

def split_candidates(candidates, needed=10):
    to_score = []
    for _, grp in it.groupby(candidates, lambda c: c.sort_weight):
        grp = list(grp)
        if len(grp) > needed:
            to_score.extend(grp)
            return to_score
        else:
Beispiel #18
0
from bt_candidates.client import Client
from bt_candidates.wiring import default_schema_factory as sf
from bt_candidates.wiring import default_filter_factory as ff
from bt_candidates.common import FieldType, AmountType, MatchType
from bt_candidates.resource_schema import SchemaField, ResourceSchema, DataFormat, DataLoader
from datetime import timedelta

client = Client(host='candidates.aws.boomtrain.com', port=7070)

# yellow pages.
site_id = "593964c3c0f76bc59c65b324f9dbf869"
schema = client.get_schema(site_id)

filter_item_type = ff.overlap_filter(field='itemType',
                                     values={'lists_en'},
                                     min=1,
                                     match_type=MatchType.CONTAINS)
filter_city_region = ff.overlap_filter(field='cityRegion',
                                       values={'toronto'},
                                       min=1,
                                       match_type=MatchType.CONTAINS)
filter_meta = ff.and_filter(filter_item_type, filter_city_region)
filter_meta_global = ff.and_filter(filter_item_type, filter_city_region,
                                   schema.named_filters['GLOBAL'])

candidates_meta = client.get_candidates(site_id=site_id,
                                        filter=filter_meta,
                                        limit=100)
candidates_meta_global = client.get_candidates(site_id=site_id,
                                               filter=filter_meta_global,
                                               limit=100)
Beispiel #19
0
def test_metafilter_resource_type_article():
    filter = f.overlap_filter(field='resource-type', values=['article'], min=1)
    candidates = CLIENT.get_candidates('14d221d80a228de0c48ee754c7a4ead7', filter=f.and_filter(f.named_filter('GLOBAL'), filter), limit=1000, sort_by=SortStrategy.POP_1D)
    assert len(candidates) == 1000