Java 8以降をインストールする
Maven 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] を検索 => ほぼすべてのページを取得
NetBeans をダウンロード
iBoxDB
セマンティックUI
ジースープ
結果は、クラス PageTextのid()番号に基づいて降順に並べられます。
ページには多くの PageText があります。複数のテキストが必要ない場合は、 Html.getDefaultTexts(Page)を変更して、 PageText を 1 つだけ返します (ページ説明テキストのみ、 Config.DescriptionOnly=true )。
Page.GetRandomContent() メソッドは、Search-Page-Content を常に変更し続けるために使用されますが、実際の PageText の順序には影響しません。
すべてのページをメモリにロードするのではなく、ID 番号を使用して順序を制御します。
search (... 文字列キーワード、長いstartId 、長いカウント)
startId => どのID(PageText作成時のID)から開始するか(startId=Long.MaxValue)を使用して上から降順に読み出します
count => 読み取るレコード、重要なパラメータ。検索速度はデータの大きさではなく、このパラメータによって決まります。
startId を検索結果から 1 を引いた最後の ID として設定します。
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 は、ユーザーが Web ページの最後に到達したときにクライアント ブラウザからポストされ、デフォルトの nextpage_startId=Long.MaxValue を設定します。JavaScript では、大きな数値を文字列 ("'" + nextpage_startId + "'") として記述する必要があります。
開ける
public Page Html . get ( String url );
プライベート Web サイトのテキストを設定する
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 Core バージョン
Android 用 FTServer (APK 付き)