diff --git a/docs/solr.rst b/docs/solr.rst index ae8bbdb63..13bdbf02c 100644 --- a/docs/solr.rst +++ b/docs/solr.rst @@ -2,6 +2,8 @@ Instruções para instalar o Solr ================================ +**O servidor do Solr NÃO DEVE SER EXPOSTO NA INTERNET. Assim como o servidor de bancos de dados Postgres ele deve estar acessível pelo SAPL na rede interna (atrás de NATs/firewalls/proxies/etc).** + Solr é uma plataforma open source de indexação e busca textual utilizada pelo SAPL 3.1 para indexar documentos (normas jurídicas, matérias legislativas e documentos acessórios). Observação: Se a execução do SAPL for mediante containers Docker então use o arquivo *docker-compose.yml* disponível em @@ -45,11 +47,42 @@ Observação: Se a execução do SAPL for mediante containers Docker então use 8) Enquanto o Solr realiza a indexação da base de dados do SAPL, inicie em uma outra tela o SAPL; 9) Após realizados os passos com sucesso, nas telas de busca de Matéria Legislativa e Normas deverá aparecer um botão -de 'Busca Textual' próximo ao botão de busca tradicional. +de 'Pesquisa Textual' na tela de busca tradicional. **Observações:** * Para parar o Solr execute o comando **$SOLR_HOME/bin/solr stop** -* Para reindexar os dados do SAPL execute o comando **python3 manage.py rebuild_index** (isso irá apagar todos os dados -do Solr e indexar tudo novamente). + +* Comandos de manutenção da base textual do Solr: + +1. **python3 manage.py rebuild_index** : Apaga os dados da coleção `sapl` no Solr e reindexa tudo do início; + +2. **python3 manage.py clear_index** : Apaga todos os dados da coleção `sapl` do Solr. **Este comando não irá apagar os dados do BD Postgres, somente os dados do Solr serão apagados.** + +3. **python3 manage.py update_index** : atualiza os dados do Solr: + +3.1. **python3 manage.py update_index --remove** : remove objetos do Solr que não mais existem no BD Postgres (no caso do Postgres e Solr derem dessincronizados). + +3.2. **python3 manage.py update_index --age ** : reindexa os documentos inseridos/alterados nas últimas horas; + +3.3. **python3 manage.py update_index -s YYYY-MM-DDTHH:MM:SS -e YYYY-MM-DDTHH:MM:SS** : reindexa os documentos que foram inseridos/atualizados entre a data inicial (-s) e a data final (-e). Ambos os argumentos de início e fim são opcionais. + + +### FAQ + +1. Uma dúvida quanto a indexação do Solr, pelo que entendi de tempos e tempos tenho que rodar o comando para poder indexar novos arquivos certo? + + Errado. Cada novo documento inserido, atualizado, ou removido do SAPL dispara uma nova indexação somente daquele documento no Solr automaticamente. + +2. O comando **python3 solr_api.py -c sapl -u http://localhost:8983** indexa os novos arquivos? + + Não. Este comando é para construir a coleção do Solr a primeira vez e, por acaso, faz a indexação inicial. Não deve ser usado se a coleção já foi criada. + +3. Ou teria que reindexar do zero com *rebuild_index*? + + Pode acontecer do Postgres e o Solr se dessincronizarem (ex: o Solr ficou fora do ar por um dia e foram inseridos registros no SAPL). Ou por algum motivo se deseja refazer o índice do Solr. Neste caso pode-se refazer a indexação no Solr com o comando : **python3 manage.py rebuild_index** (direto na linha de comando, a partir da pasta raiz do SAPL). Mas existem maneiras de atualizar somente os documentos inseridos/alterados a partir de uma determinada data ao invés de atualizar tudo do zero de novo. + +4. Pergunto isso pois estou querendo criar um script para crontab para indexar esses novos arquivos + +Desnecessário.