  Natural Language Search (NLS) extends the capabilities of search engines that
perform keyword search allowing users to issue queries in a more "natural"
language. The engine tries to understand the meaning of the queries and to map
the query words to the symbols it supports like Persons, Organizations, Time
Expressions etc.. It, then, retrieves the information that satisfies the user's
need in different forms like an answer, a record or a list of records. We
present an NLS system we implemented as part of the Search service of a major
CRM platform. The system is currently in production serving thousands of
customers. Our user studies showed that creating dynamic reports with NLS saved
more than 50% of our user's time compared to achieving the same result with
navigational search. We describe the architecture of the system, the
particularities of the CRM domain as well as how they have influenced our
design decisions. Among several submodules of the system we detail the role of
a Deep Learning Named Entity Recognizer. The paper concludes with discussion
over the lessons learned while developing this product.
