Skip to content

Commit

Permalink
Merge pull request #223 from razee-io/resources_search_bug
Browse files Browse the repository at this point in the history
don't do $text search on the client
  • Loading branch information
rmgraham authored Feb 13, 2020
2 parents 08c98a7 + 78e6316 commit 5cfcfe9
Show file tree
Hide file tree
Showing 3 changed files with 33 additions and 17 deletions.
16 changes: 14 additions & 2 deletions imports/api/resource/resources.js
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,18 @@ Resources.deny({
remove() { return true; },
});

if ( Meteor.isServer ) {
Resources._ensureIndex( { 'cluster_id': 'text', 'searchableData.name': 'text', 'searchableData.namespace': 'text' } );
try {
if ( Meteor.isServer ) {
Resources._ensureIndex( {
'cluster_id': 'text',
'cluster_name': 'text',
'searchableData.name': 'text',
'searchableData.namespace': 'text',
'searchableData.kind': 'text',
'selfLink': 'text'
},
{name: 'cluster_id_text_searchableData.name_text_searchableData.namespace_text' } );
}
} catch (error) {
console.log(error);
}
6 changes: 3 additions & 3 deletions imports/api/resource/server/publications.js
Original file line number Diff line number Diff line change
Expand Up @@ -99,16 +99,16 @@ Meteor.publish('resourcesSearch', function(orgId, searchStr='', limit=50, fromTi
selfLink: 1,
created: 1,
updated: 1,
searchableData: 1
searchableData: 1,
deleted: 1
}
};
let search = {org_id: orgId, deleted: false };
if (searchStr || fromTime || toTime) {
search = utils.buildSearchForResourcesName(orgId, searchStr, fromTime, toTime);
search = utils.buildSearchForResourcesName(orgId, searchStr, fromTime, toTime, true);
if (!search) {
return [];
}
search.$and.unshift({ $text: { $search: searchStr, $caseSensitive: false } });
}
return Resources.find(search, options);
});
28 changes: 16 additions & 12 deletions imports/both/utils.js
Original file line number Diff line number Diff line change
Expand Up @@ -75,22 +75,26 @@ exports.buildSearchForClusterName = (orgId, searchStr) => {
return search;
};

exports.buildSearchForResourcesName = (orgId, searchStr = '', fromTime, toTime) => {
exports.buildSearchForResourcesName = (orgId, searchStr = '', fromTime, toTime, isServer = false) => {
var ands = [];
var tokens = _.filter(searchStr.split(/\s+/));
if(tokens.length > 0) {
ands = _.map(tokens, (token) => {
var searchRegex = {$regex: token, $options: 'i',};
var ors = [
{cluster_id: searchRegex,},
{cluster_name: searchRegex,},
{kind: searchRegex,},
{selfLink: searchRegex},
];
var out = {
$or: ors,
};
return out;
if(isServer) {
return { '$text': { '$search': token, '$caseSensitive': false } };
} else {
var searchRegex = {$regex: token, $options: 'i',};
var ors = [
{cluster_id: searchRegex,},
{cluster_name: searchRegex,},
{'searchableData.name': searchRegex},
{'searchableData.namespace': searchRegex},
{'searchableData.kind': searchRegex},
{kind: searchRegex,},
{selfLink: searchRegex},
];
return { '$or': ors };
}
});
}
if(fromTime && toTime){
Expand Down

0 comments on commit 5cfcfe9

Please sign in to comment.