nimsearch
gnize
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
nimsearch
-
Self Hosted SaaS Alternatives
You are welcome. Thanks are too rarely offered. :-)
You may also be interested in word stemming ( such as used by snowball stemmer in https://github.com/c-blake/nimsearch ) or other NLP techniques, but I don't know how internationalized/multi-lingual that stuff is, but conceptually you might want "series of stemmed words" to be the content fragments of interest.
Similarity scores have many applications. Weights on graph of cancelled downloads ranked by size might be one. :)
Of course, for your specific "truncation" problem, you might also be able to just do an edit distance against the much smaller filenames and compare data prefixes in files or use a SHA256 of a content-based first slice. ( There are edit distance algos in Nim in https://github.com/c-blake/cligen/blob/master/cligen/textUt.... as well as in https://github.com/c-blake/suggest ).
Or, you could do a little program like ndup/sh/ndup to create a "mirrored file tree" of such content-based slices then you could use any true duplicate-file finder (like https://github.com/c-blake/bu/blob/main/dups.nim) on the little signature system to identify duplicates and go from path suffixes in those clusters back to the main filesystem. Of course, a single KV store within one or two files would be more efficient than thousands of tiny files. There are many possibilities.
-
Ask HN: Books about full text search
It's all in the Nim programming language, but if you prefer reading code or running diffs then you might get a vague sense of (some) low level nuts & bolts from: https://github.com/c-blake/nimsearch
gnize
-
Self Hosted SaaS Alternatives
https://github.com/MatrixManAtYrService/gnize
Python was giving me trouble though, so I'm switching to Nim for performance reasons, and so I can compile it to C, objective-C, and JavaScript for better client portability. It's just an empty shell right now but that protects will end up here: https://github.com/gnize and hopefully soon.
What are some alternatives?
suggest - An mmap-persistent Wolfe Garbe's SymSpell spell checking algorithm in Nim
lldap - Light LDAP implementation
awesome-selfhosted - A list of Free Software network services and web applications which can be hosted on your own servers
ndup - Near-Duplicate File Detection
vector-search - The definitive guide to using Vector Search to solve your semantic search production workload needs.
Compose-Examples - Various Docker Compose examples of selfhosted FOSS and proprietary projects.
home-ops - Wife approved HomeOps driven by Kubernetes and GitOps using Flux
core - OPNsense GUI, API and systems backend
cligen - Nim library to infer/generate command-line-interfaces / option / argument parsing; Docs at