microsoft open sources bing componentsShort Bytes: Microsoft has open sourced some major components of its Bing search engine. These parts include a “baby search engine” named BitFunnel, a tool for preparing text to be used in BitFunnel, and a just-in-time C compiler. While these projects are currently in the nascent state, we can expect them to benefit Bing’s development (and developers outside the Bing data centers) in the long run.

Under the leadership of Satya Nadella, Microsoft looks and feels like a new company. The company, which took Linux to the task at every corner for more than a decade, is enthusiastically embracing Linux and open source technologies. To a lot of people, the recent developments might seem strange. However, apart from the working with open source giants for financial gain, Redmond is also making changes at code-based level.

Now, walking one step further on the open source track, Microsoft is working to share some projects derived from the work done on its Bing search engine. It has started three major projects that are the part of BitFunnel, a full-text search system that acts as the brain of Bing and Cortana, according to InfoWorld. I took a look at the GitHub page for BitFunnel and the project seemed to be in its early days and there wasn’t much documentation available.

Here’s how Redmond describes BitFunnel:

“BitFunnel is a library for high-performance full-text search over a chunk of the internet, spread across thousands of machines. It is based on a probabilistic algorithm that identifies and ranks documents according to queries involving keywords, phrases, and mathematical expressions.”

The three projects listed on BitFunnel’s GitHub page are BitFunnel, WorkBench, and NativeJIT.

  • BitFunnel: A “baby search engine” that’s an experiment in text search/retrieval.
  • WorkBench: A tool for preparing text to be used in BitFunnel. It’s based on Java and Lucene.
  • NativeJIT: An open source cross-platform library for the high-performance just-in-time compilation of C expressions. It’s written in C++.

NativeJIT compiler is the most interesting part!

NativeJIT is a lightweight and fast compiler that takes no dependencies beyond the standard C++ runtime. It was developed by Microsoft developers for Bing search engine. NativeJIT’s one of the most important uses is scoring documents containing the keywords that match a user’s query.

NativeJIP was created by keeping  three scenarios in mind:

  • Where the expression in unknown until runtime
  • Where the expression will be evaluated enough times to reduce the compilation cost
  • Where latency and throughput demands need low compilation cost

NativeJIT supports a wide range of logical and arithmetic operations, array and pointer operations, accessing structure fields, conditionals, and calling out to C functions. At the moment, it’s in a very preliminary state. However, that shouldn’t stop you from exploring the API documents for more information and examples.

What does open sourcing BitFunnel mean for Bing?

According to the latest report by SeachEngineJournal, Bing’s market share is witnessing a slow rise, while Google is experiencing a tiny dip. Bing’s growth can be attributed to the fact that Windows 10 comes with a deep Bing integration.

Microsoft’s latest Bing-related open source endeavours can mean that company is looking to further boost Bing development. Open sourcing its components will allow it to adopt the newer standards faster and enhance the search quality with JIT machine learning. Microsoft also calls this effort a way to translate the core ideas used to power Bing into a general purpose library that developers can use.

Did you find this recent development interesting? Don’t forget to drop your views and feedback in the comments section below.

Also Read: Microsoft Open Sources “Checked C” — An Extended Version Of C

Now Watch: