Browse Source

Merge pull request #171 from pelias/phrase_slop

phrase slop query modifications
pull/209/head
Peter Johnson a.k.a. insertcoffee 9 years ago
parent
commit
ee3c96f84b
  1. 12
      query/search.js
  2. 60
      test/unit/query/search.js

12
query/search.js

@ -43,7 +43,10 @@ function generate( params ){
// add search condition to distance query // add search condition to distance query
query.query.filtered.query.bool.must.push({ query.query.filtered.query.bool.must.push({
'match': { 'match': {
'name.default': input 'name.default': {
'query': input,
'analyzer': 'peliasOneEdgeGram'
}
} }
}); });
@ -51,7 +54,12 @@ function generate( params ){
// note: this is required for shingle/phrase matching // note: this is required for shingle/phrase matching
query.query.filtered.query.bool.should.push({ query.query.filtered.query.bool.should.push({
'match': { 'match': {
'phrase.default': input 'phrase.default': {
'query': input,
'analyzer': 'peliasPhrase',
'type': 'phrase',
'slop': 2
}
} }
}); });

60
test/unit/query/search.js

@ -82,12 +82,20 @@ var expected = {
'bool': { 'bool': {
'must': [{ 'must': [{
'match': { 'match': {
'name.default': 'test' 'name.default': {
'query': 'test',
'analyzer': 'peliasOneEdgeGram'
}
} }
}], }],
'should': [{ 'should': [{
'match': { 'match': {
'phrase.default': 'test' 'phrase.default': {
'query': 'test',
'analyzer': 'peliasPhrase',
'type': 'phrase',
'slop': 2
}
} }
}] }]
} }
@ -164,12 +172,20 @@ module.exports.tests.query = function(test, common) {
'bool': { 'bool': {
'must': [{ 'must': [{
'match': { 'match': {
'name.default': 'test' 'name.default': {
'query': 'test',
'analyzer': 'peliasOneEdgeGram'
}
} }
}], }],
'should': [{ 'should': [{
'match': { 'match': {
'phrase.default': 'test' 'phrase.default': {
'query': 'test',
'analyzer': 'peliasPhrase',
'type': 'phrase',
'slop': 2
}
} }
}] }]
} }
@ -204,12 +220,20 @@ module.exports.tests.query = function(test, common) {
'bool': { 'bool': {
'must': [{ 'must': [{
'match': { 'match': {
'name.default': 'test' 'name.default': {
'query': 'test',
'analyzer': 'peliasOneEdgeGram'
}
} }
}], }],
'should': [{ 'should': [{
'match': { 'match': {
'phrase.default': 'test' 'phrase.default': {
'query': 'test',
'analyzer': 'peliasPhrase',
'type': 'phrase',
'slop': 2
}
} }
}] }]
} }
@ -262,7 +286,10 @@ module.exports.tests.query = function(test, common) {
'must': [ 'must': [
{ {
'match': { 'match': {
'name.default': '123 main st' 'name.default': {
'query': '123 main st',
'analyzer': 'peliasOneEdgeGram'
}
} }
} }
], ],
@ -339,7 +366,12 @@ module.exports.tests.query = function(test, common) {
}, },
{ {
'match': { 'match': {
'phrase.default': '123 main st' 'phrase.default': {
'query': '123 main st',
'analyzer': 'peliasPhrase',
'type': 'phrase',
'slop': 2
}
} }
} }
] ]
@ -456,7 +488,10 @@ module.exports.tests.query = function(test, common) {
'must': [ 'must': [
{ {
'match': { 'match': {
'name.default': 'soho grand' 'name.default': {
'query': 'soho grand',
'analyzer': 'peliasOneEdgeGram'
}
} }
} }
], ],
@ -498,7 +533,12 @@ module.exports.tests.query = function(test, common) {
}, },
{ {
'match': { 'match': {
'phrase.default': 'soho grand' 'phrase.default': {
'query': 'soho grand',
'analyzer': 'peliasPhrase',
'type': 'phrase',
'slop': 2
}
} }
} }
] ]

Loading…
Cancel
Save