12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 |
- lunr.tokenizer = function (obj, metadata) {
- if (obj == null || obj == undefined) {
- return []
- }
- if (Array.isArray(obj)) {
- return obj.map(function (t) {
- return new lunr.Token(
- lunr.utils.asString(t).toLowerCase(),
- lunr.utils.clone(metadata)
- )
- })
- }
- var str = obj.toString().toLowerCase(),
- len = str.length,
- tokens = []
- for (var sliceEnd = 0, sliceStart = 0; sliceEnd <= len; sliceEnd++) {
- var char = str.charAt(sliceEnd),
- sliceLength = sliceEnd - sliceStart
- if ((char.match(lunr.tokenizer.separator) || sliceEnd == len)) {
- if (sliceLength > 0) {
- var tokenMetadata = lunr.utils.clone(metadata) || {}
- tokenMetadata["position"] = [sliceStart, sliceLength]
- tokenMetadata["index"] = tokens.length
- tokens.push(
- new lunr.Token (
- str.slice(sliceStart, sliceEnd),
- tokenMetadata
- )
- )
- }
- sliceStart = sliceEnd + 1
- }
- }
- return tokens
- }
- lunr.tokenizer.separator = /[\s\-]+/
|