Practical BM25 - Part 2: The BM25 Algorithm and its Variables | Elastic Blog