Skip to content

Commit 4d0298f

Browse files
authored
Merge pull request #111 from pelias/use-match-leaf-function
feat(match_phrase): Use match_phrase lib
2 parents f311c4c + ab79804 commit 4d0298f

File tree

3 files changed

+32
-164
lines changed

3 files changed

+32
-164
lines changed

layout/AddressesUsingIdsQuery.js

Lines changed: 10 additions & 65 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,14 @@
1-
'use strict';
2-
31
const _ = require('lodash');
42
const Query = require('./Query');
3+
const match_phrase = require('../lib/leaf/match_phrase');
54

65
function createAddressShould(vs) {
76
const should = {
87
bool: {
98
_name: 'fallback.address',
109
must: [
11-
{
12-
match_phrase: {
13-
'address_parts.number': {
14-
query: vs.var('input:housenumber')
15-
}
16-
}
17-
},
18-
{
19-
match_phrase: {
20-
'address_parts.street': {
21-
query: vs.var('input:street')
22-
}
23-
}
24-
}
10+
match_phrase('address_parts.number', vs.var('input:housenumber')),
11+
match_phrase('address_parts.street', vs.var('input:street'))
2512
],
2613
filter: {
2714
term: {
@@ -43,27 +30,9 @@ function createUnitAndAddressShould(vs) {
4330
bool: {
4431
_name: 'fallback.address',
4532
must: [
46-
{
47-
match_phrase: {
48-
'address_parts.unit': {
49-
query: vs.var('input:unit')
50-
}
51-
}
52-
},
53-
{
54-
match_phrase: {
55-
'address_parts.number': {
56-
query: vs.var('input:housenumber')
57-
}
58-
}
59-
},
60-
{
61-
match_phrase: {
62-
'address_parts.street': {
63-
query: vs.var('input:street')
64-
}
65-
}
66-
}
33+
match_phrase('address_parts.unit', vs.var('input:unit')),
34+
match_phrase('address_parts.number', vs.var('input:housenumber')),
35+
match_phrase('address_parts.street', vs.var('input:street'))
6736
],
6837
filter: {
6938
term: {
@@ -85,27 +54,9 @@ function createPostcodeAndAddressShould(vs) {
8554
bool: {
8655
_name: 'fallback.address',
8756
must: [
88-
{
89-
match_phrase: {
90-
'address_parts.zip': {
91-
query: vs.var('input:postcode')
92-
}
93-
}
94-
},
95-
{
96-
match_phrase: {
97-
'address_parts.number': {
98-
query: vs.var('input:housenumber')
99-
}
100-
}
101-
},
102-
{
103-
match_phrase: {
104-
'address_parts.street': {
105-
query: vs.var('input:street')
106-
}
107-
}
108-
}
57+
match_phrase('address_parts.zip', vs.var('input:postcode')),
58+
match_phrase('address_parts.number', vs.var('input:housenumber')),
59+
match_phrase('address_parts.street', vs.var('input:street'))
10960
],
11061
filter: {
11162
term: {
@@ -127,13 +78,7 @@ function createStreetShould(vs) {
12778
bool: {
12879
_name: 'fallback.street',
12980
must: [
130-
{
131-
match_phrase: {
132-
'address_parts.street': {
133-
query: vs.var('input:street')
134-
}
135-
}
136-
}
81+
match_phrase('address_parts.street', vs.var('input:street'))
13782
],
13883
filter: {
13984
term: {

layout/FallbackQuery.js

Lines changed: 11 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,8 @@
2929
var _ = require('lodash');
3030
var baseQuery = require('./baseQuery');
3131

32+
const match_phrase = require('../lib/leaf/match_phrase');
33+
3234
function Layout(){
3335
this._score = [];
3436
this._filter = [];
@@ -110,13 +112,9 @@ function addSecondary(value, fields) {
110112
function addSecPostCode(vs, o) {
111113
// add postcode if specified
112114
if (vs.isset('input:postcode')) {
113-
o.bool.should.push({
114-
match_phrase: {
115-
'address_parts.zip': {
116-
query: vs.var('input:postcode').toString()
117-
}
118-
}
119-
});
115+
o.bool.should.push(
116+
match_phrase('address_parts.zip', vs.var('input:postcode'))
117+
);
120118
}
121119
}
122120

@@ -233,27 +231,9 @@ function addUnitAndHouseNumberAndStreet(vs) {
233231
bool: {
234232
_name: 'fallback.address',
235233
must: [
236-
{
237-
match_phrase: {
238-
'address_parts.unit': {
239-
query: vs.var('input:unit').toString()
240-
}
241-
}
242-
},
243-
{
244-
match_phrase: {
245-
'address_parts.number': {
246-
query: vs.var('input:housenumber').toString()
247-
}
248-
}
249-
},
250-
{
251-
match_phrase: {
252-
'address_parts.street': {
253-
query: vs.var('input:street').toString()
254-
}
255-
}
256-
}
234+
match_phrase('address_parts.unit', vs.var('input:unit')),
235+
match_phrase('address_parts.number', vs.var('input:housenumber')),
236+
match_phrase('address_parts.street', vs.var('input:street'))
257237
],
258238
should: [],
259239
filter: {
@@ -277,28 +257,15 @@ function addUnitAndHouseNumberAndStreet(vs) {
277257
addSecCountry(vs, o);
278258

279259
return o;
280-
281260
}
282261

283262
function addHouseNumberAndStreet(vs) {
284263
var o = {
285264
bool: {
286265
_name: 'fallback.address',
287266
must: [
288-
{
289-
match_phrase: {
290-
'address_parts.number': {
291-
query: vs.var('input:housenumber').toString()
292-
}
293-
}
294-
},
295-
{
296-
match_phrase: {
297-
'address_parts.street': {
298-
query: vs.var('input:street').toString()
299-
}
300-
}
301-
}
267+
match_phrase('address_parts.number', vs.var('input:housenumber')),
268+
match_phrase('address_parts.street', vs.var('input:street'))
302269
],
303270
should: [],
304271
filter: {
@@ -330,13 +297,7 @@ function addStreet(vs) {
330297
bool: {
331298
_name: 'fallback.street',
332299
must: [
333-
{
334-
match_phrase: {
335-
'address_parts.street': {
336-
query: vs.var('input:street').toString()
337-
}
338-
}
339-
}
300+
match_phrase('address_parts.street', vs.var('input:street'))
340301
],
341302
should: [],
342303
filter: {

layout/StructuredFallbackQuery.js

Lines changed: 11 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@
88
var _ = require('lodash');
99
var baseQuery = require('./baseQuery');
1010

11+
const match_phrase = require('../lib/leaf/match_phrase');
12+
1113
function Layout(){
1214
this._score = [];
1315
this._filter = [];
@@ -68,13 +70,9 @@ function addSecondary(value, fields) {
6870
function addSecPostCode(vs, o) {
6971
// add postcode if specified
7072
if (vs.isset('input:postcode')) {
71-
o.bool.should.push({
72-
match_phrase: {
73-
'address_parts.zip': {
74-
query: vs.var('input:postcode').toString()
75-
}
76-
}
77-
});
73+
o.bool.should.push(
74+
match_phrase('address_parts.zip', vs.var('input:postcode'))
75+
);
7876
}
7977
}
8078

@@ -192,27 +190,9 @@ function addUnitAndHouseNumberAndStreet(vs) {
192190
bool: {
193191
_name: 'fallback.address',
194192
must: [
195-
{
196-
match_phrase: {
197-
'address_parts.unit': {
198-
query: vs.var('input:unit').toString()
199-
}
200-
}
201-
},
202-
{
203-
match_phrase: {
204-
'address_parts.number': {
205-
query: vs.var('input:housenumber').toString()
206-
}
207-
}
208-
},
209-
{
210-
match_phrase: {
211-
'address_parts.street': {
212-
query: vs.var('input:street').toString()
213-
}
214-
}
215-
}
193+
match_phrase('address_parts.unit', vs.var('input:unit')),
194+
match_phrase('address_parts.number', vs.var('input:housenumber')),
195+
match_phrase('address_parts.street', vs.var('input:street'))
216196
],
217197
should: [],
218198
filter: {
@@ -281,20 +261,8 @@ function addHouseNumberAndStreet(vs) {
281261
bool: {
282262
_name: 'fallback.address',
283263
must: [
284-
{
285-
match_phrase: {
286-
'address_parts.number': {
287-
query: vs.var('input:housenumber').toString()
288-
}
289-
}
290-
},
291-
{
292-
match_phrase: {
293-
'address_parts.street': {
294-
query: vs.var('input:street').toString()
295-
}
296-
}
297-
}
264+
match_phrase('address_parts.number', vs.var('input:housenumber')),
265+
match_phrase('address_parts.street', vs.var('input:street'))
298266
],
299267
should: [],
300268
filter: {
@@ -326,13 +294,7 @@ function addStreet(vs) {
326294
bool: {
327295
_name: 'fallback.street',
328296
must: [
329-
{
330-
match_phrase: {
331-
'address_parts.street': {
332-
query: vs.var('input:street').toString()
333-
}
334-
}
335-
}
297+
match_phrase('address_parts.street', vs.var('input:street'))
336298
],
337299
should: [],
338300
filter: {

0 commit comments

Comments
 (0)