Yuca: une bibliothèque de moteurs de recherche légère, en mémoire, rapide et simple à utiliser.
Si votre application ne peut pas gérer ou n'a pas vraiment besoin d'installer un moteur de recherche complet et lourd comme Lucene, ni vous voulez dépendre d'une base de données SQL pour indexer et faire des chaînes de recherche simples, vous pouvez utiliser Yuca pour indexer des documents sous un certain nombre de clés arbitraires qui peuvent être regroupées sous des balises.
La bibliothèque partagée pèse actuellement ~ 170 Ko sans aucune optimisation d'emballage, nous espérons réduire davantage la taille dans un avenir proche.
Exigences:
Instructions:
La première fois, créez votre makefile avec cmake
$ cmake .
Ensuite, après ça, construire
$ make -j 8
Les bibliothèques partagées et statiques seront disponibles sur le dossier racine du projet, ainsi que sur les exécutables yuca_demo_shared et yuca_demo_static que vous pouvez utiliser pour tester que tout a été compilé et lié correctement avec les bibliothèques partagées et dynamiques.
Il y a aussi un exécutable yuca_tests au cas où vous souhaitez vous assurer que tous les tests unitaires passent.
Le dossier swig contient des scripts SOB et des wrappers de haut niveau pour utiliser Yuca à partir d'autres langages de programmation, le premier étant java .
L'intention actuelle est d'avoir le swig/build.sh être un processus de construction en une étape pour créer des liaisons pour d'autres langues.
Pour l'instant, c'est un script très rugueux qui créera des liaisons Java, prend actuellement en charge les liaisons pour Java sur MacOS car nous sommes encore au début du développement des liaisons. À long terme, des options seront transmises à Build.sh aux liaisons de sortie pour la langue et l'architecture de votre choix.
Pour construire JNI Bingings, FIST assurez-vous d'avoir construit la bibliothèque C ++ comme expliqué dans la section Instructions de construction précédente, puis:
$ cd swig
$ ./build.sh
Cela sortira par le code JNI C ++ créé par programme et le code Java pour accéder aux emballages natifs JNI dans un dossier swig/java . Là, nous avons un package Java qui est Java Programmer Friendly com.guacal.yuca.* Là, vous trouverez les principales classes pour utiliser Yuca dans votre Indexer d'application Java / Android, Document , StringKey , SearchRequest , SearchResult .
Si vous souhaitez construire des bibliothèques avec des symboles de débogage, modifiez le paramètre CMakeLists.txt et non le paramètre CMAKE_BUILD_TYPE ,
# If you need step by step debugging, uncomment below,
# or invoke `cmake -DCMAKE_BUILD_TYPE=Debug .` in the command line
#set(CMAKE_BUILD_TYPE Debug)
Vous devrez exécuter cmake . Encore une fois, effectuez un make clean et reconstruit avec make -j 8
Veuillez ouvrir un problème sur le tracker GitHub Issue si vous avez des problèmes, des idées. Si vous avez envie de s'étendre ou de corriger, veuillez d'abord ouvrir un problème pour que vous ne perdez pas votre temps à coder quelque chose qui pourrait ne pas être accepté pour une bonne raison.
Ce projet est disponible en vertu de la licence du MIT, publié publiquement le mercredi. 9 mai 2018