mirror of https://github.com/pelias/api.git
Stephen Hess
9 years ago
3 changed files with 224 additions and 164 deletions
@ -1,105 +1,136 @@
|
||||
|
||||
module.exports = { |
||||
'query': { |
||||
'filtered': { |
||||
'query': { |
||||
'bool': { |
||||
'must': [{ |
||||
'match': { |
||||
'name.default': { |
||||
'query': 'test', |
||||
'boost': 1, |
||||
'analyzer': 'peliasOneEdgeGram' |
||||
} |
||||
} |
||||
}], |
||||
'should': [{ |
||||
'match': { |
||||
'phrase.default': { |
||||
'query': 'test', |
||||
'analyzer': 'peliasPhrase', |
||||
'type': 'phrase', |
||||
'boost': 1, |
||||
'slop': 2 |
||||
'must': [ |
||||
{ |
||||
'match': { |
||||
'name.default': { |
||||
'analyzer': 'peliasOneEdgeGram', |
||||
'boost': 1, |
||||
'query': 'test' |
||||
} |
||||
} |
||||
} |
||||
}, { |
||||
'function_score': { |
||||
'query': { |
||||
'match': { |
||||
'phrase.default': { |
||||
'analyzer': 'peliasPhrase', |
||||
'type': 'phrase', |
||||
'boost': 1, |
||||
'slop': 2, |
||||
'query': 'test' |
||||
} |
||||
], |
||||
'should': [ |
||||
{ |
||||
'match': { |
||||
'phrase.default': { |
||||
'analyzer': 'peliasPhrase', |
||||
'type': 'phrase', |
||||
'boost': 1, |
||||
'slop': 2, |
||||
'query': 'test' |
||||
} |
||||
}, |
||||
'functions': [{ |
||||
'linear': { |
||||
'center_point': { |
||||
'origin': { |
||||
'lat': 29.49136, |
||||
'lon': -82.50622 |
||||
}, |
||||
'offset': '1km', |
||||
'scale': '994km', |
||||
'decay': 0.5 |
||||
} |
||||
} |
||||
}], |
||||
'score_mode': 'avg', |
||||
'boost_mode': 'replace' |
||||
} |
||||
}, |
||||
{ |
||||
'function_score': { |
||||
'query': { |
||||
'filtered': { |
||||
'filter': { |
||||
'exists': { |
||||
'field': 'popularity' |
||||
} |
||||
}, |
||||
{ |
||||
'function_score': { |
||||
'query': { |
||||
'match': { |
||||
'phrase.default': { |
||||
'analyzer': 'peliasPhrase', |
||||
'type': 'phrase', |
||||
'boost': 1, |
||||
'slop': 2, |
||||
'query': 'test' |
||||
} |
||||
} |
||||
} |
||||
}, |
||||
'max_boost': 2, |
||||
'score_mode': 'first', |
||||
'boost_mode': 'replace', |
||||
'filter': { |
||||
'or': [ |
||||
}, |
||||
'functions': [ |
||||
{ |
||||
'type': { |
||||
'value': 'admin0' |
||||
'weight': 2, |
||||
'linear': { |
||||
'center_point': { |
||||
'origin': { |
||||
'lat': 29.49136, |
||||
'lon': -82.50622 |
||||
}, |
||||
'offset': '1km', |
||||
'scale': '994km', |
||||
'decay': 0.5 |
||||
} |
||||
} |
||||
}, |
||||
{ |
||||
'type': { |
||||
'value': 'admin1' |
||||
} |
||||
], |
||||
'score_mode': 'avg', |
||||
'boost_mode': 'replace' |
||||
} |
||||
}, |
||||
{ |
||||
'function_score': { |
||||
'query': { |
||||
'match': { |
||||
'phrase.default': { |
||||
'analyzer': 'peliasPhrase', |
||||
'type': 'phrase', |
||||
'boost': 1, |
||||
'slop': 2, |
||||
'query': 'test' |
||||
} |
||||
}, |
||||
} |
||||
}, |
||||
'max_boost': 20, |
||||
'functions': [ |
||||
{ |
||||
'type': { |
||||
'value': 'admin2' |
||||
'field_value_factor': { |
||||
'modifier': 'log1p', |
||||
'field': 'popularity' |
||||
}, |
||||
'weight': 1 |
||||
} |
||||
], |
||||
'score_mode': 'first', |
||||
'boost_mode': 'replace', |
||||
'filter': { |
||||
'exists': { |
||||
'field': 'popularity' |
||||
} |
||||
} |
||||
} |
||||
}, |
||||
{ |
||||
'function_score': { |
||||
'query': { |
||||
'match': { |
||||
'phrase.default': { |
||||
'analyzer': 'peliasPhrase', |
||||
'type': 'phrase', |
||||
'boost': 1, |
||||
'slop': 2, |
||||
'query': 'test' |
||||
} |
||||
} |
||||
] |
||||
}, |
||||
'functions': [{ |
||||
'field_value_factor': { |
||||
'modifier': 'sqrt', |
||||
'field': 'popularity' |
||||
}, |
||||
'weight': 1 |
||||
}] |
||||
'max_boost': 20, |
||||
'functions': [ |
||||
{ |
||||
'field_value_factor': { |
||||
'modifier': 'log1p', |
||||
'field': 'population' |
||||
}, |
||||
'weight': 2 |
||||
} |
||||
], |
||||
'score_mode': 'first', |
||||
'boost_mode': 'replace', |
||||
'filter': { |
||||
'exists': { |
||||
'field': 'population' |
||||
} |
||||
} |
||||
} |
||||
} |
||||
}] |
||||
] |
||||
} |
||||
} |
||||
} |
||||
}, |
||||
'sort': [ '_sort' ], |
||||
'size': 10, |
||||
'track_scores': true |
||||
'track_scores': true, |
||||
'sort': [ |
||||
'_score' |
||||
] |
||||
}; |
||||
|
@ -1,105 +1,136 @@
|
||||
|
||||
module.exports = { |
||||
'query': { |
||||
'filtered': { |
||||
'query': { |
||||
'bool': { |
||||
'must': [{ |
||||
'match': { |
||||
'name.default': { |
||||
'query': 'test', |
||||
'boost': 1, |
||||
'analyzer': 'peliasOneEdgeGram' |
||||
} |
||||
} |
||||
}], |
||||
'should': [{ |
||||
'match': { |
||||
'phrase.default': { |
||||
'query': 'test', |
||||
'analyzer': 'peliasPhrase', |
||||
'type': 'phrase', |
||||
'boost': 1, |
||||
'slop': 2 |
||||
'must': [ |
||||
{ |
||||
'match': { |
||||
'name.default': { |
||||
'analyzer': 'peliasOneEdgeGram', |
||||
'boost': 1, |
||||
'query': 'test' |
||||
} |
||||
} |
||||
} |
||||
}, { |
||||
'function_score': { |
||||
'query': { |
||||
'match': { |
||||
'phrase.default': { |
||||
'analyzer': 'peliasPhrase', |
||||
'type': 'phrase', |
||||
'boost': 1, |
||||
'slop': 2, |
||||
'query': 'test' |
||||
} |
||||
], |
||||
'should': [ |
||||
{ |
||||
'match': { |
||||
'phrase.default': { |
||||
'analyzer': 'peliasPhrase', |
||||
'type': 'phrase', |
||||
'boost': 1, |
||||
'slop': 2, |
||||
'query': 'test' |
||||
} |
||||
}, |
||||
'functions': [{ |
||||
'linear': { |
||||
'center_point': { |
||||
'origin': { |
||||
'lat': 28.49136, |
||||
'lon': -87.50623 |
||||
}, |
||||
'offset': '1km', |
||||
'scale': '1km', |
||||
'decay': 0.5 |
||||
} |
||||
} |
||||
}], |
||||
'score_mode': 'avg', |
||||
'boost_mode': 'replace' |
||||
} |
||||
}, |
||||
{ |
||||
'function_score': { |
||||
'query': { |
||||
'filtered': { |
||||
'filter': { |
||||
'exists': { |
||||
'field': 'popularity' |
||||
} |
||||
}, |
||||
{ |
||||
'function_score': { |
||||
'query': { |
||||
'match': { |
||||
'phrase.default': { |
||||
'analyzer': 'peliasPhrase', |
||||
'type': 'phrase', |
||||
'boost': 1, |
||||
'slop': 2, |
||||
'query': 'test' |
||||
} |
||||
} |
||||
} |
||||
}, |
||||
'max_boost': 2, |
||||
'score_mode': 'first', |
||||
'boost_mode': 'replace', |
||||
'filter': { |
||||
'or': [ |
||||
}, |
||||
'functions': [ |
||||
{ |
||||
'type': { |
||||
'value': 'admin0' |
||||
'weight': 2, |
||||
'linear': { |
||||
'center_point': { |
||||
'origin': { |
||||
'lat': 28.49136, |
||||
'lon': -87.50623 |
||||
}, |
||||
'offset': '1km', |
||||
'scale': '1km', |
||||
'decay': 0.5 |
||||
} |
||||
} |
||||
}, |
||||
{ |
||||
'type': { |
||||
'value': 'admin1' |
||||
} |
||||
], |
||||
'score_mode': 'avg', |
||||
'boost_mode': 'replace' |
||||
} |
||||
}, |
||||
{ |
||||
'function_score': { |
||||
'query': { |
||||
'match': { |
||||
'phrase.default': { |
||||
'analyzer': 'peliasPhrase', |
||||
'type': 'phrase', |
||||
'boost': 1, |
||||
'slop': 2, |
||||
'query': 'test' |
||||
} |
||||
}, |
||||
} |
||||
}, |
||||
'max_boost': 20, |
||||
'functions': [ |
||||
{ |
||||
'type': { |
||||
'value': 'admin2' |
||||
'field_value_factor': { |
||||
'modifier': 'log1p', |
||||
'field': 'popularity' |
||||
}, |
||||
'weight': 1 |
||||
} |
||||
], |
||||
'score_mode': 'first', |
||||
'boost_mode': 'replace', |
||||
'filter': { |
||||
'exists': { |
||||
'field': 'popularity' |
||||
} |
||||
} |
||||
} |
||||
}, |
||||
{ |
||||
'function_score': { |
||||
'query': { |
||||
'match': { |
||||
'phrase.default': { |
||||
'analyzer': 'peliasPhrase', |
||||
'type': 'phrase', |
||||
'boost': 1, |
||||
'slop': 2, |
||||
'query': 'test' |
||||
} |
||||
} |
||||
] |
||||
}, |
||||
'functions': [{ |
||||
'field_value_factor': { |
||||
'modifier': 'sqrt', |
||||
'field': 'popularity' |
||||
}, |
||||
'weight': 1 |
||||
}] |
||||
'max_boost': 20, |
||||
'functions': [ |
||||
{ |
||||
'field_value_factor': { |
||||
'modifier': 'log1p', |
||||
'field': 'population' |
||||
}, |
||||
'weight': 2 |
||||
} |
||||
], |
||||
'score_mode': 'first', |
||||
'boost_mode': 'replace', |
||||
'filter': { |
||||
'exists': { |
||||
'field': 'population' |
||||
} |
||||
} |
||||
} |
||||
} |
||||
}] |
||||
] |
||||
} |
||||
} |
||||
} |
||||
}, |
||||
'sort': [ '_sort' ], |
||||
'size': 10, |
||||
'track_scores': true |
||||
'track_scores': true, |
||||
'sort': [ |
||||
'_score' |
||||
] |
||||
}; |
||||
|
Loading…
Reference in new issue