Semantic Joins
In this release, we are introducing the concept of "Semantic Joins" or matchings.
Semantic Jouins generalize the concept of classical Database JOINs to domains with fuzzy or multi-modal data and defined similarity functions. To do so, it extends the notion of Stable Marriages, common in combinatorics.
py
men = Index(...)
women = Index(...)
couples = men.join(women)
> Learn more about it [here](https://ashvardanian.com/posts/searching-stable-marriages/)
[0.21.0](https://github.com/unum-cloud/usearch/compare/v0.20.0...v0.21.0) (2023-07-18)
Add
* Index `copy` interface ([da3d184](https://github.com/unum-cloud/usearch/commit/da3d184fc3c5cde1f3f31e535b77655277ae0c1f))
* Print `Index` stats/metadata ([32f8757](https://github.com/unum-cloud/usearch/commit/32f8757a4755e23d02b052fc1fbd311baf46827f))
* Progress-bar printing to long running tasks ([7479aa0](https://github.com/unum-cloud/usearch/commit/7479aa0e6a07204cd39a43821b0b3e484de115bb))
* Stable Marriages for Semantic Joins ([f0de330](https://github.com/unum-cloud/usearch/commit/f0de33014d906e15e7fe94da2e0366f38ea4fcf6))
Docs
* Example of connecting SimSIMD ([c50dfce](https://github.com/unum-cloud/usearch/commit/c50dfcefaec35c9d734a7363829a1f396f85a3a6))
Fix
* Move constructors ([369716b](https://github.com/unum-cloud/usearch/commit/369716b6929c27f997ee11ec9b7c46aed48063fb))
* Pretty printing `Index` ([2690c0e](https://github.com/unum-cloud/usearch/commit/2690c0e2fd339b1d3586576b998e8a89d39cf4cd))
* Same size index `join`-s and label exports ([e34a840](https://github.com/unum-cloud/usearch/commit/e34a84031f1ab5fc7d6ac39dbefcaa3677c09a1e))
* Warning issue ([2ebc8ed](https://github.com/unum-cloud/usearch/commit/2ebc8ed27e5955673ff8a3ff875412ca26a04500))
* Warning issue ([7fd46d4](https://github.com/unum-cloud/usearch/commit/7fd46d445dd109a216e1e81535f85815db3b8d4b))
Improve
* Expose joins and copies to Python ([95594fb](https://github.com/unum-cloud/usearch/commit/95594fb8eb57e4fab167e545c78ebedeabbbe051))
Improve
* `log` argument to use `tqdm` on search ([39b9513](https://github.com/unum-cloud/usearch/commit/39b951307ee817b16ff4675c3bd9ea55b628a9ca))
* Executors as pure thread managers ([f84ca3a](https://github.com/unum-cloud/usearch/commit/f84ca3a5b1dc3b4331c1e25e21b3332eb16434af))
* Extend diagnostics in `join.py` ([420e5cc](https://github.com/unum-cloud/usearch/commit/420e5cc695a3674233a8470bd469cdabc6f974cb))
* Joins validations script ([0eded16](https://github.com/unum-cloud/usearch/commit/0eded16ba7796f91334a445b82285dcd2ef92012))
* Partial recall ([93501a3](https://github.com/unum-cloud/usearch/commit/93501a324dfd9175cf8803009fff7844f11c9e0a))
Make
* Build and Test ([43c89c7](https://github.com/unum-cloud/usearch/commit/43c89c72049050356ffca66b6763b23d7711452e))
* Enable checking of alignment of pointers ([ec76ac2](https://github.com/unum-cloud/usearch/commit/ec76ac2f5ea6230255be404fe701fef9e13d1299))
* Enable debug symbols ([a4c0a47](https://github.com/unum-cloud/usearch/commit/a4c0a479e53509b69cbff9658af79840ead0b914))
* Enable LeakSanitizer, a memory leak detector ([18a7e62](https://github.com/unum-cloud/usearch/commit/18a7e6205e09b1301e0d4f949e121cd5aa183feb))
* Enable UndefinedBehaviorSanitizer, a fast undefined behavior detector ([7f1de2a](https://github.com/unum-cloud/usearch/commit/7f1de2affb9a6970f7863c893c91a62375eb2204))
* Ref for action checkout. ([b153c8f](https://github.com/unum-cloud/usearch/commit/b153c8fc67b9234ba5402f42c03df492ca3df68a))
* Rewrite Makefile of C library ([f08ace3](https://github.com/unum-cloud/usearch/commit/f08ace37bb6155d50b1e891f9149718a39861f7d))
* Rigorous ASAN checks for clang ([b0f25a8](https://github.com/unum-cloud/usearch/commit/b0f25a82d9c224196c411aaf4f9f75f0cd5d3bab))
Refactor
* Join default arguments ([3ffe1b4](https://github.com/unum-cloud/usearch/commit/3ffe1b4c9817bd5ed3d3783708a8783d30d1b13f))
* Join evaluation scripts ([4f83a0a](https://github.com/unum-cloud/usearch/commit/4f83a0ae458582913510bbc35603d7df376ff839))
Hashes
* Source code (zip) : `827c7d40e58f0d2b3f0f957503ba56fa7832ceb73275c2dc27f8354e5ad7f705`
* Source code (tar.gz) : `407a94f31b36223cc8592b9df4b9acad25eda99ca1bbf5348c63853afa871048`