Instalar Java 8+
Instalar Maven 3+
Descarga este Proyecto.
Correr
$ cd FTServer
$ mvn package cargo:run
Abrir http://127.0.0.1:8088/
Presione [Ctrl-C] para detener el contenedor.
Ingrese una URL completa para indexar la página, luego busque.
Mueva la página hacia adelante reindexándola.
[Palabra1 Palabra2 Palabra3] => el texto tiene Palabra1 y Palabra2 y Palabra3
["Palabra1 Palabra2 Palabra3"] => el texto tiene "Palabra1 Palabra2 Palabra3" en su totalidad
Busque [https] o [http] => obtenga casi todas las páginas
Descargar Netbeans
iBoxDB
UI semántica
sopa
El orden de los resultados se basa en el número id() de la clase PageText , en orden descendente.
Una página tiene muchos textos de página. Si no necesita varios textos, modifique Html.getDefaultTexts(Page) , devuelve solo un PageText (solo el texto de descripción de la página, Config.DescriptionOnly=true ).
El método Page.GetRandomContent() se utiliza para mantener el contenido de la página de búsqueda siempre cambiando, no afecta el orden real del texto de la página.
Utilice el número de identificación para controlar el orden en lugar de cargar todas las páginas en la memoria.
buscar (... Cadena de palabras clave, ID de inicio largo, recuento largo)
startId => qué ID (la identificación cuando creó PageText) para comenzar, use (startId=Long.MaxValue) para leer desde arriba, en orden descendente
recuento => registros para leer, parámetro importante , la velocidad de búsqueda depende de este parámetro, no del tamaño de los datos.
establezca startId como la última identificación de los resultados de la búsqueda menos uno
startId = search ( "keywords" , startId , count );
nextpage_startId = startId - 1 // this 'minus one' has done inside search()
...
//read next page
search ( "keywords" , nextpage_startId , count )
principalmente, nextpage_startId se publica desde el navegador del cliente cuando el usuario llega al final de la página web y establece el valor predeterminado nextpage_startId=Long.MaxValue, en javascript el número grande debe escribirse como Cadena ("'" + nextpage_startId + "'")
Abierto
public Page Html . get ( String url );
Configure el texto privado de su sitio web
Page page = new Page ();
page . url = url ;
page . title = title ;
page . text = replace ( doc . body (). text ());
page ... = ...
return page ;
Configurando la memoria JVM desde FTServer/.mvn/jvm.config, el valor predeterminado es 4 GB.
Configuración del índice de caché de solo lectura (Readonly_MaxDBCount) desde FTServer/src/main/java/ftserver/Config.java.
¿Por qué Tracker consume recursos en mi 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
Versión principal de C# ASP.NET
FTServer para Android con APK