เครื่องมือค้นหาที่โฮสต์ด้วยตนเองคุณสามารถใช้สำหรับบล็อกคงที่หรือเกี่ยวกับเว็บไซต์อื่น ๆ ที่คุณต้องการฟังก์ชั่นการค้นหาสำหรับ
อินสแตนซ์สดของฉันอยู่ที่ http://search.cweiske.de/ และดัชนีเว็บไซต์ของฉันบล็อกและ URL ที่เชื่อมโยงทั้งหมด
foo bar ค้นหา foo AND barfoo 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/dirgearman-job-server ไม่ใช่ gearman-server )gearadmin (แพ็คเกจ gearman-tools )ติดตั้งและเรียกใช้ Elasticsearch และ Gearman
ติดตั้ง php-gearman และ gearman-tools
รับสำเนารหัสท้องถิ่น:
$ git clone https://git.cweiske.de/phinde.git phinde
ติดตั้งการพึ่งพาผ่านนักแต่งเพลง:
$ Composer Install-No-Dev
ชี้รูทเอกสารของเว็บเซิร์ฟเวอร์ไปยังไดเรกทอรี www ของ Phinde
คัดลอก data/config.php.dist ไปยัง data/config.php และปรับ ตรวจสอบให้แน่ใจว่าเพิ่มโดเมนของคุณในการรวบรวมข้อมูลการรวบรวมข้อมูล
สร้างฐานข้อมูล MySQL และนำเข้า schema จาก data/schema.sql
เรียกใช้ bin/setup.php ซึ่งตั้งค่าสคีมา Elasticsearch
ใส่หน้าแรกของคุณลงในคิว:
$ ./bin/process.php http://example.org/
เริ่มงานอย่างน้อยหนึ่งคนเพื่อประมวลผลคิวการรวบรวมข้อมูล+ดัชนี:
$ ./bin/phinde-worker.php
ตรวจสอบหน้าสถานะของ Phinde ในเบราว์เซอร์ของคุณ จำนวนงานเปิดควรเป็น> 0 จำนวนคนงานด้วย
เมื่อไซต์ของคุณเปลี่ยนไปเครื่องมือค้นหาจะต้องรวบรวมข้อมูลอีกครั้งและจัดทำดัชนีหน้าใหม่อีกครั้ง
เพียงแค่บอก Phinde ว่ามีบางอย่างเปลี่ยนไปโดยการวิ่ง:
$ ./bin/process.php http://example.org/foo.htm
Phinde รองรับหน้า HTML และฟีดอะตอมดังนั้นหากบล็อกของคุณมีฟีดก็เพียงพอที่จะให้ Phinde Reindex นั้น มันจะพบหน้าเชื่อมโยงทั้งหมดโดยอัตโนมัติ
การเพิ่มแบบฟอร์มการค้นหาอย่างง่าย ๆ ในเว็บไซต์ของคุณนั้นง่ายมาก มันต้องการสองสิ่ง:
<form> แท็กด้วยการกระทำที่ชี้ไปที่อินสแตนซ์ของ Phindeqตัวอย่าง:
<form method = "get" action = "http://phinde.example.org"> <input type = "text" name = "q" placeholder = "ค้นหาข้อความ"/>> <button type = "ส่ง"> ค้นหา </button> </form>
เมื่อใช้ SystemD คุณสามารถปล่อยให้มันทำงานหลายอินสแตนซ์ของคนงานเมื่อระบบบูทขึ้น:
คัดลอกไฟล์ data/systemd/phinde*.service เข้า /etc/systemd/system/
ปรับชื่อผู้ใช้และกลุ่มและไดเรกทอรีงาน
เปิดใช้งานสามกระบวนการของคนงาน:
$ systemctl daemon-reload $ systemctl เปิดใช้งาน phinde@1 $ systemctl เปิดใช้งาน phinde@2 $ systemctl เปิดใช้งาน phinde@3 $ systemctl เปิดใช้งาน phinde $ systemctl start phinde
ตอนนี้คนงานสามคนกำลังทำงานอยู่ การรีสตาร์ทบริการ phinde ยังรีสตาร์ทคนงาน
เรียกใช้ bin/renew-subscriptions.php วันละครั้งด้วย cron มันจะต่ออายุการสมัครสมาชิก WebSub
ลบข้อมูลดัชนีจากโดเมนหนึ่ง:
$ CURL -IV -XDELETE -H 'TYPE: Application/JSON' -D '{"Query": {"TERM": {"Domain": "Example.org"}}}' http://127.0.0.1:9200/phinde/_query
นั่นคือ delete-by-Query 2.0 ดู https://www.elastic.co/guide/en/elasticsearch/plugins/2.0/delete-by-query-usage.html
Phinde สนับสนุน WebSUB เพื่อรับสมัครการเปลี่ยนแปลงของเว็บไซต์ เมื่อฟินเดได้รับแจ้งจากฮับของเว็บไซต์เกี่ยวกับการเปลี่ยนแปลงมันจะคลานและดัชนีหน้าที่เปลี่ยนแปลงทันที
สมัครรับฟีดของเว็บไซต์:
$ php bin/subscribe.php http://example.org/feed.atom
Phinde จะกำหนดฮับของเว็บไซต์และส่งคำขอลงทะเบียนไปยัง
หน้าสถานะจะแสดงจำนวนการทำงานและจำนวนการสมัครสมาชิกแบบเปิด
การยกเลิกการสมัครยังเกิดขึ้นในบรรทัดคำสั่ง:
$ php bin/unsubcribe.php http://example.org/feed.atom
ซอร์สโค้ดของ Phinde สามารถใช้ได้จาก http://git.cweiske.de/phinde.git หรือกระจกบน GitHub
Phinde ได้รับใบอนุญาตภายใต้ AGPL V3 หรือใหม่กว่า
Phinde เขียนโดย Christian Weiske