UNPKG

1.55 kBJavaScriptView Raw
1
2var query = require('../index'),
3 vs = new query.Vars( query.defaults ),
4 q = new query.layout.FilteredBooleanQuery();
5
6vs.var( 'input:name', 'hackney city farm' );
7vs.set({ 'focus:point:lat': 1, 'focus:point:lon': 2 });
8vs.set({ 'input:housenumber': 1, 'input:street': 'foo street' });
9vs.set({ 'boundary:circle:lat': 1, 'boundary:circle:lon': 2 });
10
11vs.set({
12 'boundary:rect:top': 1,
13 'boundary:rect:right': 2,
14 'boundary:rect:bottom': 2,
15 'boundary:rect:left': 2
16});
17
18vs.set({ 'boundary:country': 'USA' });
19vs.set({ 'input:county': 'New York' });
20
21// mandatory matches
22q.score( query.view.boundary_country, 'must' )
23 .score( query.view.ngrams, 'must' );
24
25// scoring boost
26q.score( query.view.phrase )
27 .score( query.view.focus( query.view.phrase ) );
28
29// address components
30q.score( query.view.address('unit') )
31 .score( query.view.address('housenumber') )
32 .score( query.view.address('street') )
33 .score( query.view.address('postcode') );
34
35// admin components
36q.score( query.view.admin('country_a') )
37 .score( query.view.admin('country') )
38 .score( query.view.admin('region') )
39 .score( query.view.admin('region_a') )
40 .score( query.view.admin('county') )
41 .score( query.view.admin('localadmin') )
42 .score( query.view.admin('locality') )
43 .score( query.view.admin('neighbourhood') );
44
45// non-scoring hard filters
46q.filter( query.view.boundary_circle )
47 .filter( query.view.boundary_rect );
48
49// sorting 'tie-breakers'
50q.sort( query.view.sort_distance );
51
52var rendered = q.render( vs );
53console.log( JSON.stringify( rendered, null, 2 ) );