https://github.com/mlampros/nmslibr
Non Metric Space ( Approximate ) Library in R
https://github.com/mlampros/nmslibr
approximate-nearest-neighbor-search nmslib non-metric python r reticulate
Last synced: 2 months ago
JSON representation
Non Metric Space ( Approximate ) Library in R
- Host: GitHub
- URL: https://github.com/mlampros/nmslibr
- Owner: mlampros
- License: other
- Created: 2018-02-27T14:52:02.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2023-02-02T18:12:44.000Z (over 2 years ago)
- Last Synced: 2025-03-25T04:04:24.158Z (3 months ago)
- Topics: approximate-nearest-neighbor-search, nmslib, non-metric, python, r, reticulate
- Language: R
- Homepage: https://mlampros.github.io/nmslibR/
- Size: 2.76 MB
- Stars: 12
- Watchers: 2
- Forks: 4
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
README
[](https://github.com/mlampros/nmslibR/actions)
[](https://codecov.io/github/mlampros/nmslibR?branch=master)
[](http://cran.r-project.org/package=nmslibR)
[](http://www.r-pkg.org/pkg/nmslibR)![]()
[](https://cran.r-project.org/package=nmslibR)## nmslibR (Non Metric Space Library in R)
The **nmslibR** package is a wrapper of the [Non-Metric Space Library (NMSLIB)](https://github.com/nmslib/nmslib) *python* package. More details on the functionality of the *nmslibR* package can be found in the [blog-post](http://mlampros.github.io/2018/02/27/the_nmslibR_package/) and in the package Documentation.
**Reference:**
https://github.com/nmslib/nmslib
https://github.com/nmslib/nmslib/blob/master/manual/latex/manual.pdf
### **System Requirements**
* Python (>= 2.7)
All modules should be installed in the default python configuration (the configuration that the R-session displays as default), otherwise errors will occur during the *nmslibR* package installation (**reticulate::py_discover_config()** might be useful here).
The installation notes for *Linux, Macintosh, Windows* are based on *Python 3*.
#### **Debian/Ubuntu**
Installation of the system requirements,
```R
sudo apt-get install python3-pip
sudo pip3 install --upgrade setuptools
sudo pip3 install -U numpy
sudo pip3 install --upgrade scipy
sudo apt-get install libboost-all-dev libgsl0-dev libeigen3-dev
sudo apt-get install cmake
pip3 install --upgrade pybind11
sudo pip3 install nmslib
```
#### **Fedora**
Installation of the system requirements,
```R
dnf install python3-pip
sudo pip3 install --upgrade setuptools
sudo pip3 install -U numpy
sudo pip3 install --upgrade scipy
yum install python3-devel
yum install boost-devel
yum install gsl-devel
yum install eigen3-devel
pip3 install --upgrade pybind11
sudo pip3 install nmslib
```
#### **Macintosh OSX**
Upgrade python to version 3 using,
```R
brew upgrade python
```
Install the requirements,
```R
sudo pip3 install --upgrade pip setuptools wheel
sudo pip3 install -U numpy
sudo pip3 install --upgrade scipy
brew install boost
brew install eigen
brew install gsl
brew install cmake
brew link --overwrite cmake
pip3 install --upgrade pybind11
sudo pip3 install nmslib
```
After a successful installation of the requirements the user should open an R session and give the following *reticulate* command to change to the relevant (brew-python) directory (otherwise the *nmslibR* package won't work properly),
```R
reticulate::use_python('/usr/local/bin/python3')
```
and then,
```R
reticulate::py_discover_config()
```
to validate that a user is in the python version where *nmslibR* is installed.
#### **Windows OS** (the instructions were tested with the version 1.0.0 of the R package, thus use with caution)
First download of [get-pip.py](https://bootstrap.pypa.io/get-pip.py) for windows
Update the Environment variables ( Control Panel >> System and Security >> System >> Advanced system settings >> Environment variables >> System variables >> Path >> Edit ) by adding ( for instance in case of python 2.7 ),
```R
C:\Python36;C:\Python36\Scripts
```
Install the [Build Tools for Visual Studio](https://visualstudio.microsoft.com/downloads/#build-tools-for-visual-studio-2017)
Open the Command prompt (console) and install / upgrade the system requirements,
```R
pip3 install --upgrade pip setuptools wheel
pip3 install -U numpy
pip3 install --upgrade scipy
```
**Installation of cmake**
First download cmake for Windows, [win64-x64 Installer](https://cmake.org/download/).
Once the file is downloaded run the **.exe** file and during installation make sure to **add CMake to the system PATH for all users**.
Then install the *nmslib* library,
```R
pip3 install --upgrade pybind11
pip3 install nmslib
```
### **Installation of the nmslibR package**
To install the package from CRAN use,
```R
install.packages('nmslibR')
```
and to download the latest version from Github use the *install_github* function of the *remotes* package,
```R
remotes::install_github(repo = 'mlampros/nmslibR')
```
Use the following link to report bugs/issues,[https://github.com/mlampros/nmslibR/issues](https://github.com/mlampros/nmslibR/issues)
### **Citation:**
If you use the code of this repository in your paper or research please cite both **nmslibR** and the **original articles / software** [https://CRAN.R-project.org/package=nmslibR/citation.html](https://CRAN.R-project.org/package=nmslibR/citation.html):
```R
@Manual{,
title = {{nmslibR}: Non Metric Space (Approximate) Library in R},
author = {Lampros Mouselimis},
year = {2021},
note = {R package version 1.0.7},
url = {https://CRAN.R-project.org/package=nmslibR},
}
```