What are your real-world applications of this versatile data structure?

They are useful for optimization in databases like sqlite and query engines like apache spark. Application developers can use them as concise representations of user data for filtering previously seen items.

The linked site gives a short introduction to bloom filters along with some links to further reading:

A Bloom filter is a data structure designed to tell you, rapidly and memory-efficiently, whether an element is present in a set. The price paid for this efficiency is that a Bloom filter is a probabilistic data structure: it tells us that the element either definitely is not in the set or may be in the set.

  • noli@programming.dev
    link
    fedilink
    arrow-up
    1
    ·
    10 months ago

    Cool, so in this case your filter is basically a classifier ML model. How would you set the hash functions then though?

    • the_sisko
      link
      fedilink
      English
      arrow-up
      1
      ·
      10 months ago

      Usually it’s a bunch of different string hashes of the text content. They could be different hashing algorithms, but it’s more common to take a single hash algorithm and simply create a bunch of hash functions that operate on different parts of the data.

      If it’s not text data, there’s a whole bunch of other hashing strategies but I only ever saw bloom filters used with text.