public void map(LongWritable key, Text values,Context cont) {

        book = p.getBook(values.toString(),book);
        
        if(!p.needtoParse(values.toString()))
            return;
        /** For the parsing lines **/
        
        if(values.toString().indexOf(p.getParseWordStart()) != -1 || 
               values.toString().indexOf(p.getParseWordStop()) != -1 )
            return;

        
        Pattern p = Pattern.compile("\\w+");
        Matcher m = p.matcher(values.toString());
        

        try {
                while(m.find()) {
                    value= m.group().toLowerCase();
                        if (!Character.isLetter(value.charAt(0)) 
                                || Character.isDigit(value.charAt(0))
                                || googleStopwords.contains(value)
                                || value.contains("_")) {
                            continue;
                        }
                    fs=(FileSplit)cont.getInputSplit();
                    fileName=fs.getPath().getName();
                    byteOffset=key.toString();
                    wl.clearLocations();
                    word.set(value+"@"+fileName);
                    wl.setWord(value);
                    wl.setBook(book);
                    wl.setFileName(fileName);
                    wl.addLocation(byteOffset);
                    wl.setCount(wl.getSize());
                    cont.write(word,wl);
                    logger.info("MAPPER KEY "+word.toString() + 
                            " WORD LOCATION "+wl.toString());
                }
        }
        catch(Exception ex)
        {
         ex.printStackTrace();
        }
        
        
    }