Motor de pesquisa auto-hospedado que você pode usar para o seu blog estático ou sobre qualquer outro site para o qual você deseja a funcionalidade de pesquisa.
Minha instância ao vivo está em http://search.cweiske.de/ e indexa meu site, blog e todos os URLs vinculados.
foo bar procura foo AND barfoo OR bartitle:foo procura foo apenas no título da páginabefore:2016-08-30 -Data de modificação antes daquele diaafter:2016-08-30 -modificado após esse diadate::2016-08-30 -Corpo exato do Dia da Modificaçãofoo bar site:example.org/dir/site Get Parâmetro: /?q=foo&site=example.org/dirgearman-job-server , não gearman-server )gearadmin (pacote gearman-tools )Instale e execute o Elasticsearch e Gearman
Instale php-gearman e gearman-tools
Obtenha uma cópia local do código:
$ git clone https://git.cweiske.de/phinde.git phinde
Instale dependências via compositor:
$ composer install--não-dev
Aponte o documento do seu servidor da web para o diretório www de Phinde
Copie data/config.php.dist para data/config.php e ajuste -os. Certifique -se de adicionar seu domínio à lista de permissões de rastreamento.
Crie um banco de dados MySQL e importe o esquema de data/schema.sql
Execute bin/setup.php , que configura o esquema Elasticsearch
Coloque sua página inicial na fila:
$ ./bin/process.php http://example.org/
Comece pelo menos um trabalhador para processar a fila Crawl+Index:
$ ./bin/phinde-worker.php
Verifique a página de status de Phinde em seu navegador. O número de tarefas abertas deve ser> 0, o número de trabalhadores também.
Quando o seu site mudou, o mecanismo de pesquisa precisa recriar e reiniciar as páginas.
Simplesmente diga a Phinde que algo mudou em execução:
$ ./bin/process.php http://example.org/foo.htm
Phinde suporta páginas HTML e Feeds de Atom; portanto, se o seu blog tiver um feed, é suficiente para deixar Phinde Reindex esse. Ele encontrará todas as páginas vinculadas automaticamente.
Adicionar um formulário de pesquisa simples ao seu site é fácil. Precisa de duas coisas:
<form> tag com uma ação que aponta para a instância de Phindeq .Exemplo:
<form método = "get" action = "http://phinde.example.org"> <input type = "text" name = "q" placeholder = "pesquisa text"/> <button type = "submit"> pesquisa </botão> </morm>
Ao usar o Systemd, você pode permitir que ele execute várias instâncias de trabalhador quando o sistema ele se eleva:
Copiar arquivos data/systemd/phinde*.service em /etc/systemd/system/
Ajuste os nomes de usuários e grupos e os diretórios de trabalho
Ativar três processos de trabalhador:
$ Systemctl Daemon-Reload $ Systemctl Ativar Phinde@1 $ Systemctl Ativar phinde@2 $ Systemctl Ativar Phinde@3 $ Systemctl Ativar Phinde $ Systemctl Start Phinde
Agora três trabalhadores estão correndo. Reiniciar o serviço phinde também reinicia os trabalhadores.
Execute bin/renew-subscriptions.php uma vez por dia com Cron. Ele renovará as assinaturas da Websub.
Excluir dados de índice de um domínio:
$ CURL -IV -XDELETE -H 'Tipo de conteúdo: Application/JSON' -D '{"Query": {"termo": {"domain": "exemplo.org"}}}' http://127.0.0.1:9200/phinde/_query
Isso é excluir 2.0, consulte https://www.elastic.co/guide/en/elasticsearch/plugins/2.0/delete-by-query-usage.html
Phinde suporta o Websub para assinar as alterações de um site. Quando Phinde é notificado pelo hub do site sobre as alterações, ele rasteja imediatamente e indexará as páginas alteradas.
Inscreva -se no feed de um site:
$ php bin/subscribe.php http://example.org/feed.atom
Phinde determinará o hub do site e enviará uma solicitação de registro para ele.
A página de status mostrará o número de trabalho e o número de assinaturas abertas.
Cancelar a inscrição também acontece na linha de comando:
$ php bin/unsubscribe.php http://example.org/feed.atom
O código -fonte de Phinde está disponível em http://git.cweiske.de/phinde.git ou o espelho no github.
Phinde é licenciado sob o AGPL V3 ou posterior.
Phinde foi escrito por Christian Weiske.