Implementation of two different strategies for calculation of search length.

why is this function pure virtual? Isn't it right that derived classes are actually returning `_search_length`?