Skip to content

Commit

Permalink
feat(query): enable autocomplete of country-codes
Browse files Browse the repository at this point in the history
  • Loading branch information
missinglink committed Mar 10, 2022
1 parent ad93fc4 commit 7896ce8
Show file tree
Hide file tree
Showing 15 changed files with 25 additions and 14 deletions.
1 change: 0 additions & 1 deletion query/autocomplete.js
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@ const toSingleField = require('./view/helper').toSingleField;
// additional views (these may be merged in to pelias/query at a later date)
var views = {
custom_boosts: require('./view/boost_sources_and_layers'),
ngrams_strict: require('./view/ngrams_strict'),
ngrams_last_token_only: require('./view/ngrams_last_token_only'),
ngrams_last_token_only_multi: require('./view/ngrams_last_token_only_multi'),
admin_multi_match_first: require('./view/admin_multi_match_first'),
Expand Down
12 changes: 12 additions & 0 deletions query/view/ngrams_strict.js
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,18 @@ module.exports = function( vs ){
vs.var('multi_match:ngrams_strict:input', vs.var('input:name').get());
vs.var('multi_match:ngrams_strict:fields', toMultiFields(vs.var('ngram:field').get(), vs.var('lang').get()));

// if the input is a single incomplete token then add
// a field targeting country-code abbreviations.
var incomplete = vs.var('input:name:tokens_incomplete').get();
var complete = vs.var('input:name:tokens_complete').get();
if (incomplete.length === 1 && complete.length === 0) {
vs.var('multi_match:ngrams_strict:fields', vs.var('multi_match:ngrams_strict:fields')
.get().concat([
vs.var('admin:country_a:field').get()
])
);
}

vs.var('multi_match:ngrams_strict:analyzer', vs.var('ngram:analyzer').get());
vs.var('multi_match:ngrams_strict:slop', vs.var('phrase:slop').get());
vs.var('multi_match:ngrams_strict:boost', vs.var('ngram:boost').get());
Expand Down
2 changes: 1 addition & 1 deletion test/unit/fixture/autocomplete_boundary_country.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ module.exports = {
'constant_score': {
'filter': {
'multi_match': {
'fields': ['name.default', 'name.en'],
'fields': ['name.default', 'name.en', 'parent.country_a.ngram'],
'analyzer': 'peliasQuery',
'query': 'test',
'boost': 100,
Expand Down
2 changes: 1 addition & 1 deletion test/unit/fixture/autocomplete_boundary_gid.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ module.exports = {
'constant_score': {
'filter': {
'multi_match': {
'fields': ['name.default', 'name.en'],
'fields': ['name.default', 'name.en', 'parent.country_a.ngram'],
'analyzer': 'peliasQuery',
'query': 'test',
'boost': 100,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ module.exports = {
'constant_score': {
'filter': {
'multi_match': {
'fields': ['name.default', 'name.en'],
'fields': ['name.default', 'name.en', 'parent.country_a.ngram'],
'analyzer': 'peliasQuery',
'query': 'test',
'boost': 100,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ module.exports = {
'constant_score': {
'filter': {
'multi_match': {
'fields': ['name.default', 'name.en'],
'fields': ['name.default', 'name.en', 'parent.country_a.ngram'],
'analyzer': 'peliasQuery',
'query': 'test',
'boost': 100,
Expand Down
2 changes: 1 addition & 1 deletion test/unit/fixture/autocomplete_linguistic_focus.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ module.exports = {
'constant_score': {
'filter': {
'multi_match': {
'fields': ['name.default', 'name.en'],
'fields': ['name.default', 'name.en', 'parent.country_a.ngram'],
'analyzer': 'peliasQuery',
'query': 'test',
'boost': 100,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ module.exports = {
'constant_score': {
'filter': {
'multi_match': {
'fields': ['name.default', 'name.en'],
'fields': ['name.default', 'name.en', 'parent.country_a.ngram'],
'analyzer': 'peliasQuery',
'query': 'test',
'boost': 100,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ module.exports = {
'constant_score': {
'filter': {
'multi_match': {
'fields': ['name.default', 'name.en'],
'fields': ['name.default', 'name.en', 'parent.country_a.ngram'],
'analyzer': 'peliasQuery',
'query': 't',
'boost': 100,
Expand Down
2 changes: 1 addition & 1 deletion test/unit/fixture/autocomplete_linguistic_only.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ module.exports = {
'constant_score': {
'filter': {
'multi_match': {
'fields': ['name.default', 'name.en'],
'fields': ['name.default', 'name.en', 'parent.country_a.ngram'],
'analyzer': 'peliasQuery',
'query': 'test',
'boost': 100,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ module.exports = {
'constant_score': {
'filter': {
'multi_match': {
'fields': ['name.default', 'name.en'],
'fields': ['name.default', 'name.en', 'parent.country_a.ngram'],
'analyzer': 'peliasQuery',
'query': 'tes',
'boost': 100,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ module.exports = {
'constant_score': {
'filter': {
'multi_match': {
'fields': ['name.default', 'name.en'],
'fields': ['name.default', 'name.en', 'parent.country_a.ngram'],
'analyzer': 'peliasQuery',
'query': 'te',
'boost': 100,
Expand Down
2 changes: 1 addition & 1 deletion test/unit/fixture/autocomplete_with_category_filtering.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ module.exports = {
'constant_score': {
'filter': {
'multi_match': {
'fields': ['name.default', 'name.en'],
'fields': ['name.default', 'name.en', 'parent.country_a.ngram'],
'analyzer': 'peliasQuery',
'query': 'test',
'boost': 100,
Expand Down
2 changes: 1 addition & 1 deletion test/unit/fixture/autocomplete_with_layer_filtering.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ module.exports = {
'constant_score': {
'filter': {
'multi_match': {
'fields': ['name.default', 'name.en'],
'fields': ['name.default', 'name.en', 'parent.country_a.ngram'],
'analyzer': 'peliasQuery',
'query': 'test',
'boost': 100,
Expand Down
2 changes: 1 addition & 1 deletion test/unit/fixture/autocomplete_with_source_filtering.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ module.exports = {
'constant_score': {
'filter': {
'multi_match': {
'fields': ['name.default', 'name.en'],
'fields': ['name.default', 'name.en', 'parent.country_a.ngram'],
'analyzer': 'peliasQuery',
'query': 'test',
'boost': 100,
Expand Down

0 comments on commit 7896ce8

Please sign in to comment.