Service-orientation paves the way for the Internet of Services (IoS), where millions of services will be available to realize the everyday user applications or tasks. Consequently, as a great number of functionally-equivalent services will be available for a specific user task, the service non-functional aspect should be considered for filtering and selecting among these services. The state-of-the-art approaches in non-functional service discovery exploit constraint solving techniques to optimize the matchmaking time between a service offer and demand pair. However, they do not scale well, as matchmaking time is proportional to the offer number, so they are not yet suitable for the IoS. To this end, this article proposes three novel alternative techniques that intelligently organize the service offer space to improve the overall matchmaking time. These techniques are theoretically and experimentally evaluated. The results show that all techniques optimize the matchmaking time without sacrificing accuracy and that each technique is better in different circumstances.