Skip to content

Commit 00d068d

Browse files
committed
Fixes to search
- Updated use of wildcard.\n- Removed dead code\n- Fallback to name if no title
1 parent bc48dc7 commit 00d068d

File tree

1 file changed

+9
-35
lines changed

1 file changed

+9
-35
lines changed

static/search.js

Lines changed: 9 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -335,7 +335,11 @@ var Search = Control.extend({
335335

336336
for (var itemKey in searchMap) {
337337
if (searchMap.hasOwnProperty(itemKey)) {
338-
this.add(searchMap[itemKey])
338+
var item = searchMap[itemKey];
339+
if(!item.title){
340+
item.title = item.name;
341+
}
342+
this.add(item);
339343
}
340344
}
341345
});
@@ -349,6 +353,7 @@ var Search = Control.extend({
349353
// takes a value and returns a map of all relevant search items
350354
searchEngineSearch: function(value){
351355
var searchTerm = value.toLowerCase();
356+
console.log('searchTerm:', searchTerm);
352357
var self = this;
353358
return this.searchEnginePromise.then(function(searchEngine) {
354359

@@ -362,17 +367,17 @@ var Search = Control.extend({
362367

363368
} else {
364369
// add “can-”, look for an exact match in the title field, and apply a positive boost
365-
q.term('can-' + searchTerm, { usePipeline: false, fields: ['title'], boost: 12 });
370+
q.term('can-' + searchTerm, { usePipeline: false, boost: 12 });
366371

367372
// look for terms that match the beginning or end of this query
368-
q.term('*' + searchTerm + '*', { usePipeline: false });
373+
q.term(searchTerm, { usePipeline: false, wildcard: lunr.Query.wildcard.LEADING | lunr.Query.wildcard.TRAILING });
369374
}
370375

371376
// look for matches in any of the fields and apply a medium positive boost
372377
var split = searchTerm.split(lunr.tokenizer.separator);
373378
split.forEach(function(term) {
374379
q.term(term, { usePipeline: false, fields: q.allFields, boost: 10 });
375-
q.term(term + '*', { usePipeline: false, fields: q.allFields });
380+
q.term(term, { usePipeline: false, fields: q.allFields, wildcard: lunr.Query.wildcard.TRAILING });
376381
});
377382
});
378383

@@ -382,37 +387,6 @@ var Search = Control.extend({
382387
return mappedResults;
383388
});
384389
},
385-
386-
//function formatSearchTerm
387-
// replace colons because they can confuse the search engine
388-
// if they're not part of a field search
389-
// @param term
390-
formatSearchTerm: function(term){
391-
var colonParts = term.split(":"),
392-
wildcardChar = "*"
393-
394-
//go ahead and leave if no colons found
395-
if(colonParts.length === 1){
396-
return wildcardChar + term + wildcardChar;
397-
}
398-
399-
var colonReplacement = "*",
400-
fields = ["name", "title", "description", "url"],
401-
hasFieldSearch = colonParts.length > 1,
402-
fieldToSearch = hasFieldSearch ? colonParts.shift() : null,
403-
isFieldToSearchInFields = fields.indexOf(fieldToSearch) >= 0;
404-
405-
term = colonParts.join(colonReplacement) + wildcardChar;
406-
407-
if(isFieldToSearchInFields){
408-
term = fieldToSearch + ":" + term;
409-
}else{
410-
term = wildcardChar + term;
411-
}
412-
413-
return term;
414-
},
415-
416390
// ---- END SEARCHING / PARSING ---- //
417391

418392

0 commit comments

Comments
 (0)