If, contrary to my initial thinking, OP just wants a way to do what they describe manually (and the voting so far suggests that's most people are reading it that way) then this is overkill. But if one wants a transparent, automated method that allows return to search start any time w/o having to think about it ahead of time....this should help...
If we want to get a little fancier (though still down and dirty) we can create an autocommand and a mapping like so...
augroup searchorigin
autocmd!
au CmdLineLeave * let b:cmdtype = expand('<afile>') | if (b:cmdtype == '/' || b:cmdtype == '?') | let b:searchorigin = getpos(".") | endif
augroup END
nnoremap <leader>/ :exec 'call setpos(".", b:searchorigin)'<CR>
The autocommand will record the starting point of your current search in a buffer-local variable, allowing this to work simultaneously on different searches occurring in different buffers. The mapping will move the cursor back to that point using that variable.
So just start a search as you always do and then hit \/
and you'll be back to the start point. (Replace <leader>/
in the mapping with whatever free key(s) you desire.)