자바 8 이상 설치
메이븐 3+ 설치
이 프로젝트를 다운로드하세요.
달리다
$ cd FTServer
$ mvn package cargo:run
http://127.0.0.1:8088/ 열기
컨테이너를 중지하려면 [Ctrl-C]를 누르세요.
페이지 색인을 생성할 전체 URL을 입력한 후 검색하세요.
페이지를 다시 색인화하여 페이지를 앞으로 이동합니다.
[Word1 Word2 Word3] => 텍스트에는 Word1 과 Word2 와 Word3이 있습니다.
["Word1 Word2 Word3"] => 텍스트 전체가 "Word1 Word2 Word3" 입니다.
[https] 또는 [http] 검색 => 거의 모든 페이지 가져오기
넷빈즈 다운로드
아이박스DB
시맨틱 UI
Jsoup
결과는 PageText 클래스 의 id() 번호를 기준으로 내림차순으로 정렬됩니다.
페이지에는 많은 PageText가 있습니다. 여러 텍스트가 필요하지 않은 경우 Html.getDefaultTexts(Page) 를 수정하고 하나의 PageText(페이지 설명 텍스트만, Config.DescriptionOnly=true )만 반환합니다.
Page.GetRandomContent() 메서드는 Search-Page-Content를 항상 변경하는 데 사용되며 실제 PageText 순서에는 영향을 주지 않습니다.
모든 페이지를 메모리에 로드하는 대신 ID 번호를 사용하여 순서를 제어하세요.
검색(... 문자열 키워드, 긴 startId , 긴 개수 )
startId => 시작할 ID(PageText를 생성할 때의 ID), (startId=Long.MaxValue)를 사용하여 위에서부터 내림차순으로 읽습니다.
count => 읽을 레코드, 중요한 매개변수 , 검색 속도는 데이터의 크기가 아니라 이 매개변수에 따라 달라집니다.
검색 결과에서 마지막 ID에서 1을 뺀 값으로 startId를 설정합니다.
startId = search ( "keywords" , startId , count );
nextpage_startId = startId - 1 // this 'minus one' has done inside search()
...
//read next page
search ( "keywords" , nextpage_startId , count )
대부분 nextpage_startId는 사용자가 웹페이지 끝에 도달하면 클라이언트 브라우저에서 게시되고 기본 nextpage_startId=Long.MaxValue를 설정합니다. 자바스크립트에서는 큰 숫자를 문자열("'" + nextpage_startId + "'")로 써야 합니다.
열려 있는
public Page Html . get ( String url );
비공개 웹사이트 텍스트 설정
Page page = new Page ();
page . url = url ;
page . title = title ;
page . text = replace ( doc . body (). text ());
page ... = ...
return page ;
FTServer/.mvn/jvm.config 에서 JVM 메모리 설정, 기본값은 4GB입니다.
FTServer/src/main/java/ftserver/Config.java 에서 인덱스 읽기 전용 캐시(Readonly_MaxDBCount)를 설정합니다.
Tracker가 내 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
C# ASP.NET 코어 버전
APK가 포함된 Android용 FTServer