정적 블로그 또는 검색 기능을 원하는 다른 웹 사이트에 사용할 수있는 자체 호스팅 검색 엔진.
내 라이브 인스턴스는 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 get 매개 변수 : /?q=foo&site=example.org/dir 를 사용하십시오gearman-job-server , gearman-server )gearadmin Command Line 도구 ( gearman-tools 패키지)Elasticsearch 및 Gearman을 설치하고 실행하십시오
php-gearman 및 gearman-tools 설치하십시오
코드의 로컬 사본 가져 오기 :
$ git 클론 https://git.cweiske.de/phinde.git phinde
작곡가를 통해 종속성 설치 :
$ composer install-no-dev
Webserver의 문서 루트를 Phinde의 www 디렉토리에 가리 킵니다
data/config.php.dist data/config.php 에 복사하여 조정하십시오. 크롤링 화이트리스트에 도메인을 추가하십시오.
MySQL 데이터베이스를 작성하고 data/schema.sql 에서 스키마를 가져옵니다.
엘라스틱 검색 스키마를 설정하는 bin/setup.php 실행하십시오
홈페이지를 대기열에 넣으십시오.
$ ./bin/process.php http://example.org/
크롤링+인덱스 큐를 처리하려면 한 명 이상의 작업자를 시작하십시오.
$ ./bin/phinde-worker.php
브라우저에서 Phinde의 상태 페이지를 확인하십시오. 열린 작업의 수는> 0이어야합니다.
사이트가 변경되면 검색 엔진이 페이지를 다시 인정하고 다시 표시해야합니다.
Phinde에게 실행을 통해 무언가가 바뀌 었다고 말하십시오.
$ ./bin/process.php http://example.org/foo.htm
Phinde는 HTML 페이지와 Atom 피드를 지원하므로 블로그에 피드가 있으면 Phinde가 그 사람을 다시 구부리도록하기에 충분합니다. 링크 된 모든 페이지를 자동으로 찾을 수 있습니다.
웹 사이트에 간단한 검색 양식을 추가하는 것은 쉽습니다. 두 가지가 필요합니다.
<form> 태그q 라는 이름의 검색 텍스트 필드.예:
<form 메소드 = "get"action = "http://phinde.example.org"> <입력 유형 = "text"name = "Q"자리 표시기 = "검색 텍스트"/> <버튼 유형 = "제출"> 검색 </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": "example.org"}}}'http://127.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을 지원하여 웹 사이트 변경 사항을 구독합니다. 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가 작성했습니다.