| ▲ | hijinks 2 days ago | ||||||||||||||||||||||
is there a better way then bloom filters to handle needle in the haystack type searches where the haystack might be terabytes of data and you only want a few lines? | |||||||||||||||||||||||
| ▲ | philipkglass 2 days ago | parent [-] | ||||||||||||||||||||||
There are a lot of "better than Bloom" filters that work similarly in some aspects. I have used Cuckoo [1] and Ribbon [2] filters for Bloom-type applications. If you have an application where you do a lot of one kind of searching, it may also be worth implementing a specialized variant of a data structure. I needed a Cuckoo-type filter on the JVM but only for 64 bit integers and I was able to make a smaller, faster code base that was specialized to this data type instead of handling generic objects. You need to know up front whether you need to be able to dynamically add entries to the filter or if your application can tolerate rebuilding the filter entirely whenever the underlying data changes. In the latter case you have more freedom to choose data structures; many of the modern "better than Bloom" filters are more compact but don't support dynamic updates. [1] https://en.wikipedia.org/wiki/Cuckoo_filter [2] https://engineering.fb.com/2021/07/09/core-infra/ribbon-filt... | |||||||||||||||||||||||
| |||||||||||||||||||||||