Static Blogまたは検索機能が必要な他のWebサイトについて使用できる自己ホスト検索エンジン。
私のライブインスタンスはhttp://search.cweiske.de/にあり、私のウェブサイト、ブログ、およびすべてのリンクされたURLをインデックスします。
foo bar foo AND barを検索しますfoo OR bartitle:foo 、ページタイトルでのみfooを検索しますbefore:2016-08-30その日前の変更日after:2016-08-30その日以降に変更date::2016-08-30正確な変更日の一致foo bar site:example.org/dir/siteを使用してパラメーターを取得します: /?q=foo&site=example.org/dir ?q=foo&site=example.org/dirgearman-job-serverではなくgearman-server )gearadminコマンドラインツール( gearman-toolsパッケージ)ElasticSearchとGearmanをインストールして実行します
php-gearmanとgearman-toolsをインストールします
コードのローカルコピーを取得します。
$ git clone https://git.cweiske.de/phinde.git phinde
Composerを介して依存関係をインストールします。
$ Composer Install -No-Dev
WebサーバーのドキュメントルートをPhindeのwwwディレクトリに向けます
data/config.php.distをdata/config.phpにコピーして調整します。ドメインをクロールホワイトリストに追加してください。
MySQLデータベースを作成し、 data/schema.sqlからスキーマをインポートします
ElasticSearchスキーマをセットアップするbin/setup.phpを実行します
ホームページをキューに入れます:
$ ./bin/process.php http://example.org/
少なくとも1人のワーカーを開始して、クロール+インデックスキューを処理します。
$ ./bin/phinde-worker.php
ブラウザのPhindeのステータスページを確認してください。オープンタスクの数は> 0、労働者の数である必要があります。
サイトが変更されたとき、検索エンジンはページを再クロールして再インデックスする必要があります。
実行することで何かが変わったことをPhindeに伝えるだけです:
$ ./bin/process.php http://example.org/foo.htm
PhindeはHTMLページとアトムフィードをサポートしているため、ブログにフィードがある場合は、Phindeがその1つを再インドするのに十分です。リンクされたすべてのページが自動的に見つかります。
Webサイトに簡単な検索フォームを追加するのは簡単です。 2つのことが必要です。
<form> phindeインスタンスを指すアクションを備えたタグqの名前でテキストフィールドを検索します。例:
<form method = "get" action = "http://phinde.example.org"> <入力型= "テキスト" name = "q" placeholder = "text text"/> <button type = "submit">検索</button> </form>
SystemDを使用する場合、システムが起動したときに複数のワーカーインスタンスを実行させることができます。
ファイルdata/systemd/phinde*.service into /etc/systemd/system/
ユーザーとグループ名、およびワークディレクトリを調整します
3つのワーカープロセスを有効にします。
$ SystemCtl Daemon-Reload $ systemctlを有効にするphinde@1 $ systemctlを有効にするphinde@2 $ systemctlを有効にするphinde@3 $ systemctlを有効にします $ systemctl start phinde
現在、3人の労働者が走っています。 phindeサービスの再起動も労働者を再起動します。
cronで1日1回bin/renew-subscriptions.phpを実行します。 Websubサブスクリプションが更新されます。
1つのドメインからインデックスデータを削除します。
$ CURL -IV -XDELETE -H 'Content -Type:Application/JSON' -D '{"query":{"Term":{"domain": "emple.org"}}' http://127.0.0.0.1:9200/phinde/_Query
これは削除by-query 2.0です。https://www.elastic.co/guide/en/elasticsearch/plugins/2.0/delete-by-query-usage.htmlを参照してください
PhindeはWebsubをサポートして、Webサイトの変更を購読します。 PhindeがWebサイトのハブから変更について通知されると、すぐに変更されたページをクロールしてインデックスします。
ウェブサイトのフィードを購読する:
$ php bin/subscribe.php http://example.org/feed.atom
PhindeはWebサイトのハブを決定し、登録リクエストを送信します。
ステータスページには、作業数とオープンサブスクリプションの数が表示されます。
登録解除はコマンドラインでも発生します。
$ php bin/unsubscribe.php http://example.org/feed.atom
Phindeのソースコードは、http://git.cweiske.de/phinde.gitまたはgithubのミラーから入手できます。
Phindeは、AGPL V3以降にライセンスされています。
フィンデはクリスチャン・ワイスケによって書かれました。