function seekVanguard(phrase) {
      phrase = _adaptKey(phrase);
      var kdx = reduce(KEY_INDEX, phrase);

      // look back for the first record block containing keyword for the specified phrase
      if (phrase <= _adaptKey(kdx.last_word)) {
        var index = kdx.index - 1, prev;
        while (prev = KEY_INDEX[index]) {
          if (_adaptKey(prev.last_word) !== _adaptKey(kdx.last_word)) {
            break;
          }
          kdx = prev;
          index--;
        }
      }

      return loadKeys(kdx).then(function (list) {
          var idx = shrink(list, phrase);
          // look back for the first matched keyword position
          while (idx > 0) {
            if (_adaptKey(list[--idx]) !== _adaptKey(phrase)) {
              idx++;
              break;
            }
          }        
          return [kdx, Math.min(idx, list.length - 1), list];
        });
    }
function seekVanguard(phrase) {
      phrase = _adaptKey(phrase);
      var kdx = reduce(KEY_INDEX, phrase);

      
      if (phrase <= _adaptKey(kdx.last_word)) {
        var index = kdx.index - 1, prev;
        while (prev = KEY_INDEX[index]) {
          if (_adaptKey(prev.last_word) !== _adaptKey(kdx.last_word)) {
            break;
          }
          kdx = prev;
          index--;
        }
      }

      return loadKeys(kdx).then(function (list) {
          var idx = shrink(list, phrase);
          
          while (idx > 0) {
            if (_adaptKey(list[--idx]) !== _adaptKey(phrase)) {
              idx++;
              break;
            }
          }        
          return [kdx, Math.min(idx, list.length - 1), list];
        });
    }
function seekVanguard ( phrase ) { phrase = _adaptKey ( phrase ) ; var kdx = reduce ( KEY_INDEX , phrase ) ; // look back for the first record block containing keyword for the specified phrase if ( phrase <= _adaptKey ( kdx . last_word ) ) { var index = kdx . index - 1 , prev ; while ( prev = KEY_INDEX [ index ] ) { if ( _adaptKey ( prev . last_word ) !== _adaptKey ( kdx . last_word ) ) { break ; } kdx = prev ; index -- ; } } return loadKeys ( kdx ) . then ( function ( list ) { var idx = shrink ( list , phrase ) ; // look back for the first matched keyword position while ( idx > 0 ) { if ( _adaptKey ( list [ -- idx ] ) !== _adaptKey ( phrase ) ) { idx ++ ; break ; } } return [ kdx , Math . min ( idx , list . length - 1 ) , list ] ; } ) ; }
Search for the first keyword match given phrase.
Search for the first keyword match given phrase .