'Locate position of the doc_id, it will iterate using `next` field in record
until required key will be find.
:param doc_id: the doc_id to locate
:param key: key value
:param start: position to start from'

def _locate_doc_id(self, doc_id, key, start):

    location = start
    while True:
        self.buckets.seek(location)
        data = self.buckets.read(self.entry_line_size)
        try:
            (l_doc_id, l_key, start, size, status, _next) = self.entry_struct.unpack(data)
        except:
            raise DocIdNotFound(("Doc_id    '%s'    for    '%s'    not    found" % (doc_id, key)))
        if ((l_doc_id == doc_id) and (l_key == key)):
            break
        elif (not _next):
            raise DocIdNotFound(("Doc_id    '%s'    for    '%s'    not    found" % (doc_id, key)))
        else:
            location = _next
    return (location, doc_id, l_key, start, size, status, _next)
