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 = { |
module.exports = { |
||||||
'query': { |
'query': { |
||||||
'filtered': { |
'filtered': { |
||||||
'query': { |
'query': { |
||||||
'bool': { |
'bool': { |
||||||
'must': [{ |
'must': [ |
||||||
'match': { |
{ |
||||||
'name.default': { |
'match': { |
||||||
'query': 'test', |
'name.default': { |
||||||
'boost': 1, |
'analyzer': 'peliasOneEdgeGram', |
||||||
'analyzer': 'peliasOneEdgeGram' |
'boost': 1, |
||||||
} |
'query': 'test' |
||||||
} |
} |
||||||
}], |
|
||||||
'should': [{ |
|
||||||
'match': { |
|
||||||
'phrase.default': { |
|
||||||
'query': 'test', |
|
||||||
'analyzer': 'peliasPhrase', |
|
||||||
'type': 'phrase', |
|
||||||
'boost': 1, |
|
||||||
'slop': 2 |
|
||||||
} |
} |
||||||
} |
} |
||||||
}, { |
], |
||||||
'function_score': { |
'should': [ |
||||||
'query': { |
{ |
||||||
'match': { |
'match': { |
||||||
'phrase.default': { |
'phrase.default': { |
||||||
'analyzer': 'peliasPhrase', |
'analyzer': 'peliasPhrase', |
||||||
'type': 'phrase', |
'type': 'phrase', |
||||||
'boost': 1, |
'boost': 1, |
||||||
'slop': 2, |
'slop': 2, |
||||||
'query': 'test' |
'query': 'test' |
||||||
} |
|
||||||
} |
} |
||||||
}, |
} |
||||||
'functions': [{ |
}, |
||||||
'linear': { |
{ |
||||||
'center_point': { |
'function_score': { |
||||||
'origin': { |
'query': { |
||||||
'lat': 29.49136, |
'match': { |
||||||
'lon': -82.50622 |
'phrase.default': { |
||||||
}, |
'analyzer': 'peliasPhrase', |
||||||
'offset': '1km', |
'type': 'phrase', |
||||||
'scale': '994km', |
'boost': 1, |
||||||
'decay': 0.5 |
'slop': 2, |
||||||
} |
'query': 'test' |
||||||
} |
|
||||||
}], |
|
||||||
'score_mode': 'avg', |
|
||||||
'boost_mode': 'replace' |
|
||||||
} |
|
||||||
}, |
|
||||||
{ |
|
||||||
'function_score': { |
|
||||||
'query': { |
|
||||||
'filtered': { |
|
||||||
'filter': { |
|
||||||
'exists': { |
|
||||||
'field': 'popularity' |
|
||||||
} |
} |
||||||
} |
} |
||||||
} |
}, |
||||||
}, |
'functions': [ |
||||||
'max_boost': 2, |
|
||||||
'score_mode': 'first', |
|
||||||
'boost_mode': 'replace', |
|
||||||
'filter': { |
|
||||||
'or': [ |
|
||||||
{ |
{ |
||||||
'type': { |
'weight': 2, |
||||||
'value': 'admin0' |
'linear': { |
||||||
|
'center_point': { |
||||||
|
'origin': { |
||||||
|
'lat': 29.49136, |
||||||
|
'lon': -82.50622 |
||||||
|
}, |
||||||
|
'offset': '1km', |
||||||
|
'scale': '994km', |
||||||
|
'decay': 0.5 |
||||||
|
} |
||||||
} |
} |
||||||
}, |
} |
||||||
{ |
], |
||||||
'type': { |
'score_mode': 'avg', |
||||||
'value': 'admin1' |
'boost_mode': 'replace' |
||||||
|
} |
||||||
|
}, |
||||||
|
{ |
||||||
|
'function_score': { |
||||||
|
'query': { |
||||||
|
'match': { |
||||||
|
'phrase.default': { |
||||||
|
'analyzer': 'peliasPhrase', |
||||||
|
'type': 'phrase', |
||||||
|
'boost': 1, |
||||||
|
'slop': 2, |
||||||
|
'query': 'test' |
||||||
} |
} |
||||||
}, |
} |
||||||
|
}, |
||||||
|
'max_boost': 20, |
||||||
|
'functions': [ |
||||||
{ |
{ |
||||||
'type': { |
'field_value_factor': { |
||||||
'value': 'admin2' |
'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, |
'size': 10, |
||||||
'track_scores': true |
'track_scores': true, |
||||||
|
'sort': [ |
||||||
|
'_score' |
||||||
|
] |
||||||
}; |
}; |
||||||
|
@ -1,105 +1,136 @@ |
|||||||
|
|
||||||
module.exports = { |
module.exports = { |
||||||
'query': { |
'query': { |
||||||
'filtered': { |
'filtered': { |
||||||
'query': { |
'query': { |
||||||
'bool': { |
'bool': { |
||||||
'must': [{ |
'must': [ |
||||||
'match': { |
{ |
||||||
'name.default': { |
'match': { |
||||||
'query': 'test', |
'name.default': { |
||||||
'boost': 1, |
'analyzer': 'peliasOneEdgeGram', |
||||||
'analyzer': 'peliasOneEdgeGram' |
'boost': 1, |
||||||
} |
'query': 'test' |
||||||
} |
} |
||||||
}], |
|
||||||
'should': [{ |
|
||||||
'match': { |
|
||||||
'phrase.default': { |
|
||||||
'query': 'test', |
|
||||||
'analyzer': 'peliasPhrase', |
|
||||||
'type': 'phrase', |
|
||||||
'boost': 1, |
|
||||||
'slop': 2 |
|
||||||
} |
} |
||||||
} |
} |
||||||
}, { |
], |
||||||
'function_score': { |
'should': [ |
||||||
'query': { |
{ |
||||||
'match': { |
'match': { |
||||||
'phrase.default': { |
'phrase.default': { |
||||||
'analyzer': 'peliasPhrase', |
'analyzer': 'peliasPhrase', |
||||||
'type': 'phrase', |
'type': 'phrase', |
||||||
'boost': 1, |
'boost': 1, |
||||||
'slop': 2, |
'slop': 2, |
||||||
'query': 'test' |
'query': 'test' |
||||||
} |
|
||||||
} |
} |
||||||
}, |
} |
||||||
'functions': [{ |
}, |
||||||
'linear': { |
{ |
||||||
'center_point': { |
'function_score': { |
||||||
'origin': { |
'query': { |
||||||
'lat': 28.49136, |
'match': { |
||||||
'lon': -87.50623 |
'phrase.default': { |
||||||
}, |
'analyzer': 'peliasPhrase', |
||||||
'offset': '1km', |
'type': 'phrase', |
||||||
'scale': '1km', |
'boost': 1, |
||||||
'decay': 0.5 |
'slop': 2, |
||||||
} |
'query': 'test' |
||||||
} |
|
||||||
}], |
|
||||||
'score_mode': 'avg', |
|
||||||
'boost_mode': 'replace' |
|
||||||
} |
|
||||||
}, |
|
||||||
{ |
|
||||||
'function_score': { |
|
||||||
'query': { |
|
||||||
'filtered': { |
|
||||||
'filter': { |
|
||||||
'exists': { |
|
||||||
'field': 'popularity' |
|
||||||
} |
} |
||||||
} |
} |
||||||
} |
}, |
||||||
}, |
'functions': [ |
||||||
'max_boost': 2, |
|
||||||
'score_mode': 'first', |
|
||||||
'boost_mode': 'replace', |
|
||||||
'filter': { |
|
||||||
'or': [ |
|
||||||
{ |
{ |
||||||
'type': { |
'weight': 2, |
||||||
'value': 'admin0' |
'linear': { |
||||||
|
'center_point': { |
||||||
|
'origin': { |
||||||
|
'lat': 28.49136, |
||||||
|
'lon': -87.50623 |
||||||
|
}, |
||||||
|
'offset': '1km', |
||||||
|
'scale': '1km', |
||||||
|
'decay': 0.5 |
||||||
|
} |
||||||
} |
} |
||||||
}, |
} |
||||||
{ |
], |
||||||
'type': { |
'score_mode': 'avg', |
||||||
'value': 'admin1' |
'boost_mode': 'replace' |
||||||
|
} |
||||||
|
}, |
||||||
|
{ |
||||||
|
'function_score': { |
||||||
|
'query': { |
||||||
|
'match': { |
||||||
|
'phrase.default': { |
||||||
|
'analyzer': 'peliasPhrase', |
||||||
|
'type': 'phrase', |
||||||
|
'boost': 1, |
||||||
|
'slop': 2, |
||||||
|
'query': 'test' |
||||||
} |
} |
||||||
}, |
} |
||||||
|
}, |
||||||
|
'max_boost': 20, |
||||||
|
'functions': [ |
||||||
{ |
{ |
||||||
'type': { |
'field_value_factor': { |
||||||
'value': 'admin2' |
'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, |
'size': 10, |
||||||
'track_scores': true |
'track_scores': true, |
||||||
|
'sort': [ |
||||||
|
'_score' |
||||||
|
] |
||||||
}; |
}; |
||||||
|
Loading…
Reference in new issue