Pesquisa binaria com múltiplos resultados?

fala pessoal, como o titulo ja diz, preciso de ajuda para desenvolver um algorítimo (em java) que faz um pesquisa binaria com múltiplos resultados (se houver claro) em um arquivo de acesso aleatório…

é um arquivo de Índice (ordenado por nome) para outro arquivo principal, nele contem o nome e o endereço que aponta para o arquivo principal.

ja consegui fazer o seguinte:

public long pesquisa_bin(String nome_arquivo,String nome_informado) throws FileNotFoundException, IOException{
               RandomAccessFile arquivo = new RandomAccessFile(nome_arquivo,"r");
               
                       long numero_tuplas = (arquivo.length() / 68);// 68 bytes é o tamanho da tupla do indice...
                       long min = 0;
                       long max = numero_tuplas -1;
                       long mid;
                       final long not_find = -1;
                       
                       while (min <= max){
                           mid = (max + min)/2;
                           long posicao_nome = mid * 68; // posição do nome no arquivo
                           arquivo.seek(posicao_nome);
                           String nome_temp = "";
                           for(int i = 0;i < 30; i++){
                               nome_temp += arquivo.readChar();
                           }
                            
                           if (nome_temp.trim().compareTo(nome_informado) < 0)
                               min = mid+1;
                           else if (nome_temp.trim().compareTo(nome_informado) > 0)
                               max = mid-1;
                           else 
                               return mid;// retorna o numero da linha 
                       }
                    
                       return not_find; // se não achou....
                } 

esse algorítimo esta funcionando certinho… o único problema é que se tiver 2 ou mais nomes repetidos ele só vai retornar 1… alguem tem uma dica?