Implementation of two different strategies for calculation of search length.

i see. then why not move `_search_length` to derived classes? Since `getSearchLength()` is pure virtual,  it's indeed up to derived classes how to return the length, i.e. returing a stored value or caluclating each time.