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.
翻译:大多数现代集成开发环境(IDE)和代码编辑器都具备在开放项目中搜索可用功能和条目的特性。在JetBrains IDE中,此功能被称为"随处搜索":它允许用户通过单一入口点搜索文件、操作、类、符号、设置以及版本控制历史中的任何内容。然而,该功能基于未考虑语义的算法获取候选项,例如同义词、复杂词序变化、词性变体和拼写错误。本文描述了我们为提升搜索项可发现性而实现的机器学习方法,同时分享了在此过程中遇到的障碍及克服方法。