def configure_searchfor(self, ns, definition):
        """
        Register a relation endpoint.

        The definition's func should be a search function, which must:
        - accept kwargs for the query string (minimally for pagination)
        - return a tuple of (items, count, context) where count is the total number of items
          available (in the case of pagination) and context is a dictionary providing any
          needed context variables for constructing pagination links

        The definition's request_schema will be used to process query string arguments.

        :param ns: the namespace
        :param definition: the endpoint definition

        """
        paginated_list_schema = self.page_cls.make_paginated_list_schema_class(
            ns.object_ns,
            definition.response_schema,
        )()

        @self.add_route(ns.relation_path, Operation.SearchFor, ns)
        @qs(definition.request_schema)
        @response(paginated_list_schema)
        @wraps(definition.func)
        def search(**path_data):
            page = self.page_cls.from_query_string(definition.request_schema)
            result = definition.func(**merge_data(path_data, page.to_dict(func=identity)))
            response_data, headers = page.to_paginated_list(result, ns, Operation.SearchFor)
            definition.header_func(headers, response_data)
            response_format = self.negotiate_response_content(definition.response_formats)
            return dump_response_data(
                paginated_list_schema,
                response_data,
                headers=headers,
                response_format=response_format,
            )

        search.__doc__ = "Search for {} relative to a {}".format(pluralize(ns.object_name), ns.subject_name)
Register a relation endpoint.

        The definition's func should be a search function, which must:
        - accept kwargs for the query string (minimally for pagination)
        - return a tuple of (items, count, context) where count is the total number of items
          available (in the case of pagination) and context is a dictionary providing any
          needed context variables for constructing pagination links

        The definition's request_schema will be used to process query string arguments.

        :param ns: the namespace
        :param definition: the endpoint definition