Embedding-based search in JetBrains IDEs
This work improves search functionality for developers using JetBrains IDEs, but it appears incremental as it builds on an existing feature without claiming broad breakthroughs.
The authors tackled the problem of semantic search in JetBrains IDEs by implementing a machine learning approach to improve item discoverability, addressing issues like synonyms and typos in the existing Search Everywhere feature.
Most modern Integrated Development Environments (IDEs) and code editors have a feature to search across available functionality and items in an open project. In JetBrains IDEs, this feature is called Search Everywhere: it allows users to search for files, actions, classes, symbols, settings, and anything from VCS history from a single entry point. However, it works with the candidates obtained by algorithms that don't account for semantics, e.g., synonyms, complex word permutations, part of the speech modifications, and typos. In this work, we describe the machine learning approach we implemented to improve the discoverability of search items. We also share the obstacles encountered during this process and how we overcame them.