Installer Java 8+
Installer Maven 3+
Téléchargez ce projet.
Courir
$ cd FTServer
$ mvn package cargo:run
Ouvrez http://127.0.0.1:8088/
Appuyez sur [Ctrl-C] pour arrêter le conteneur
Saisissez une URL complète pour indexer la page, puis effectuez une recherche.
Avancez la page en réindexant la page.
[Mot1 Mot2 Mot3] => le texte contient Mot1 , Mot2 et Mot3
["Mot1 Mot2 Mot3"] => le texte contient "Mot1 Mot2 Mot3" dans son ensemble
Rechercher [https] ou [http] => obtenir presque toutes les pages
Télécharger NetBeans
iBoxDB
Interface utilisateur sémantique
Jsoup
L'ordre des résultats basé sur le numéro id() dans la classe PageText , par ordre décroissant.
Une page contient de nombreux PageTexts. si vous n'avez pas besoin de plusieurs textes, modifiez Html.getDefaultTexts(Page) , renvoie un seul PageText (le texte de description de la page uniquement, Config.DescriptionOnly=true ).
la méthode Page.GetRandomContent() est utilisée pour que le Search-Page-Content change toujours, n'affecte pas l'ordre réel du PageText.
Utilisez le numéro d'identification pour contrôler la commande au lieu de charger toutes les pages en mémoire.
recherche (... Mots-clés de chaîne, long startId , long count )
startId => quel ID (l'identifiant lorsque vous avez créé PageText) pour démarrer, utilisez (startId=Long.MaxValue) pour lire à partir du haut, par ordre décroissant
count => enregistrements à lire, paramètre important , la vitesse de recherche dépend de ce paramètre, pas de la taille des données.
définir le startId comme dernier identifiant à partir des résultats de la recherche moins un
startId = search ( "keywords" , startId , count );
nextpage_startId = startId - 1 // this 'minus one' has done inside search()
...
//read next page
search ( "keywords" , nextpage_startId , count )
la plupart du temps, le nextpage_startId est publié à partir du navigateur client lorsque l'utilisateur atteint la fin de la page Web et définit la valeur par défaut nextpage_startId=Long.MaxValue, en javascript, le grand nombre doit être écrit sous forme de chaîne ("'" + nextpage_startId + "'")
Ouvrir
public Page Html . get ( String url );
Définissez le texte de votre site Web privé
Page page = new Page ();
page . url = url ;
page . title = title ;
page . text = replace ( doc . body (). text ());
page ... = ...
return page ;
Définition de la mémoire JVM à partir de FTServer/.mvn/jvm.config, la valeur par défaut est 4 Go.
Définition du cache en lecture seule d'index (Readonly_MaxDBCount) à partir de FTServer/src/main/java/ftserver/Config.java .
Pourquoi Tracker consomme-t-il des ressources sur mon PC ?
[user@localhost ~ ]$ tracker daemon -k
[user@localhost ~ ]$ rm -rf .cache/tracker/
[user@localhost ~ ]$ cat /proc/sys/fs/file-max
803882
[user@localhost ~ ]$ ulimit -a | grep files
open files (-n) 500000
[user@localhost ~ ]$ ulimit -Hn
500000
[user@localhost ~ ]$ ulimit -Sn
500000
[user@localhost ~ ]$
$ vi /etc/security/limits.conf
* hard nofile 500000
* soft nofile 500000
root hard nofile 500000
root soft nofile 500000
[user@localhost ~ ]$ sudo blockdev --report
//if Readahead(RA) bigger than hardware speed, can set it lower.
//it depends on hardware parameters.
[user@localhost ~ ]$ sudo blockdev --setra 128 /dev/sda
[user@localhost ~ ]$ sudo blockdev --setra 128 /dev/dm-0
[user@localhost ~ ]$ sudo blockdev --setra 128 /dev/dm-1
[user@localhost ~ ]$ lsblk -o NAME,RA
[user@localhost ~ ]$ free -m
[user@localhost ~ ]$ sudo sysctl vm.drop_caches=3
[user@localhost ~ ]$ firewall-cmd --add-port=8088/tcp --permanent
//Java 11 Version
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk
//Java 18 Version
export JAVA_HOME=/home/user/Downloads/jdk-18.0.1.1
//Java 21 Version
export JAVA_HOME=/usr/lib/jvm/java-21-openjdk-21.0.2.0.13-1.el9.x86_64
$ alternatives --config java
Version de base C# ASP.NET
FTServer pour Android avec APK