-
Notifications
You must be signed in to change notification settings - Fork 34
Open
Description
Hello. I'm trying to implement this package but have an error:
Exception while invoking method 'search.source' Error: Match error: Failed Match.OneOf or Match.Optional validation
at check (packages/check/match.js:33:1)
at [object Object]._.extend._getFindOptions (packages/mongo/collection.js:248:1)
at [object Object]._.extend.find (packages/mongo/collection.js:284:1)
at [object Object].<anonymous> (server/search-source.js:7:1)
at [object Object].getSourceData (packages/meteorhacks_search-source/lib/server.js:65:1)
at [object Object].Meteor.methods.search.source (packages/meteorhacks_search-source/lib/server.js:18:1)
at maybeAuditArgumentChecks (livedata_server.js:1698:12)
at livedata_server.js:708:19
at [object Object]._.extend.withValue (packages/meteor/dynamics_nodejs.js:56:1)
at livedata_server.js:706:40
Sanitized and reported to the client as: Match failed [400]
Here is my code.
Client
var options = {
keepHistory: 1000 * 60 * 5,
localSearch: true
};
var fields = ['exerciseName', 'exerciseDesc'];
ExercisesSearch = new SearchSource('exercises', fields, options);Server
SearchSource.defineSource('exercises', function(searchText, options) {
//var options = {sort: {isoScore: -1}, limit: 20};
if(searchText) {
var regExp = buildRegExp(searchText);
var selector = {exerciseName: regExp, exerciseDesc: regExp};
return Exercises.find(selector, options).fetch();
} else {
return Exercises.find({}, options).fetch();
}
});
function buildRegExp(searchText) {
var words = searchText.trim().split(/[ \-\:]+/);
var exps = _.map(words, function(word) {
return "(?=.*" + word + ")";
});
var fullExp = exps.join('') + ".+";
return new RegExp(fullExp, "i");
}Metadata
Metadata
Assignees
Labels
No labels