soundfingerprinting.solr is Solr backend for soundfingerprinting framework. It is a resilient, fast, non-relational storage, which allows you to scale your backend very effectively.
SoundFingerprinting.Solr is not intended to be used with a high number of stored tracks. On a reasonably powerfull server it will be able to work with up to 1000 tracks. Please contact ciumac.sergiu@gmail.com for entreprise storage Emy, which will be able to accomodate much more data, scaling linearly with number of servers involved.
SoundFingerprinting.Solr uses SorlNet in order to connect to actual solr instances. Please provide connection string for both cores (sf_tracks and sf_fingerprints) in your appsettings.json
as outlined:
{
"queryBatchSize": 50,
"preferLocalShards": true,
"solr": [
{
"id": "tracks",
"url": "http://localhost:8983/solr/sf_tracks",
"documentType": "SoundFingerprinting.Solr.DAO.TrackDTO, SoundFingerprinting.Solr"
},
{
"id": "fingerprints",
"url": "http://localhost:8983/solr/sf_fingerprints",
"documentType": "SoundFingerprinting.Solr.DAO.SubFingerprintDTO, SoundFingerprinting.Solr"
}
]
}
docker pull addictedcs/soundfingerprinting.solr
docker run -p 8983:8983 addictedcs/soundfingerprinting.solr
Docker image contains initialized cores and configs required for SoundFingerprinting framework to properly function.
soundfingerprinting audio fingerprints are stored in sf_fingerprints core. It's schema can be found in solr-config
folder. Track metadata is stored in sf_tracks core.
It is important to disable query result cache for sf_fingerprints core. You may end up with Solr memory issues otherwise.
Links to the third party libraries used by soundfingerprinting project.
git clone git@github.com:AddictedCS/soundfingerprinting.solr.git
In order to build latest version of the SoundFingerprinting.Solr assembly run the following command from repository root
.\build.cmd
Install-Package SoundFingerprinting.Solr
If you want to contribute you are welcome to open issues or discuss on issues page. Feel free to contact me for any remarks, ideas, bug reports etc.
The framework is provided under MIT licence agreement.