自託管搜索引擎,您可以用於靜態博客或您想要搜索功能的任何其他網站。
我的實時實例位於http://search.cweiske.de/,並索引我的網站,博客和所有鏈接的URL。
foo bar搜索foo AND barfoo OR bartitle:foo僅在頁面標題中搜索foobefore:2016-08-30修改日期after:2016-08-30在那天之後進行了修改date::2016-08-30精確修改日比賽foo bar site:example.org/dir/site獲取參數: /?q=foo&site=example.org/dir &site = example.org/dirgearman-job-server ,而不是gearman-server )gearadmin指揮系列工具( gearman-tools軟件包)安裝並運行Elasticsearch和Gearman
安裝php-gearman和gearman-tools
獲取代碼的本地副本:
$ git克隆https://git.cweiske.de/phinde.git phinde
通過作曲家安裝依賴項:
$作曲家安裝-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/
啟動至少一個工人處理爬網+索引隊列:
$ ./bin/phinde-worker.php
在瀏覽器中查看Phinde的狀態頁面。開放任務的數量應為> 0,工人的數量也應為0。
當您的網站更改時,搜索引擎需要重新爬行並重新索引頁面。
只需告訴Phinde,跑步改變了某些事情:
$ ./bin/process.php http://example.org/foo.htm
Phinde支持HTML頁面和原子供稿,因此,如果您的博客有一個供稿,則足以讓Phinde Reindex那個。它將自動找到所有鏈接頁面。
將簡單的搜索表添加到您的網站很容易。它需要兩件事:
<form>標籤帶指向phinde實例的動作q 。例子:
<形式method =“ get” action =“ http://phinde.example.org”> <輸入type =“ text” name =“ q”佔位符=“搜索文本”/> <button type =“提交”>搜索</button> </form>
使用SystemD時,您可以在系統啟動時使其運行多個工人實例:
複製文件data/systemd/phinde*.service服務為/etc/systemd/system/
調整用戶和組名稱以及工作目錄
啟用三個工作流程:
$ Systemctl守護程序 - 重加載 $ systemctl啟用phinde@1 $ systemctl啟用phinde@2 $ systemctl啟用phinde@3 $ Systemctl啟用Phinde $ systemctl開始phinde
現在三名工人正在跑步。重新啟動phinde服務還可以重新啟動工人。
每天使用Cron運行一次bin/renew-subscriptions.php 。它將續簽WebSUB訂閱。
從一個域中刪除索引數據:
$ curl -iv -xdelete -h'content -type:application/json'-d'{“ query”:{“ term”:{“ domain':”
那是Delete-by-Query 2.0,請參閱https://www.elastic.co/guide/en/elasticsearch/plugins/2.0/delete-by-query-usage.html
Phinde支持WebSub,以訂閱網站的更改。當Phinde被網站的樞紐通知有關更改時,它將立即爬網並索引更改的頁面。
訂閱網站的提要:
$ php bin/subscribe.php http://example.org/feed.atom
Phinde將確定網站的樞紐,並向其發送註冊請求。
狀態頁面將顯示工作數和開放訂閱的數量。
取消訂閱也發生在命令行:
$ php bin/unsubscribe.php http://example.org/feed.atom
Phinde的源代碼可從http://git.cweiske.de/phinde.git或github上的鏡像獲得。
Phinde在AGPL V3或更高版本下獲得許可。
Phinde是由克里斯蒂安·韋斯克(Christian Weiske)撰寫的。