mirror of https://github.com/interlegis/sapl.git
				
				
			
			You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							88 lines
						
					
					
						
							4.3 KiB
						
					
					
				
			
		
		
		
			
			
			
		
		
	
	
							88 lines
						
					
					
						
							4.3 KiB
						
					
					
				| ================================ | |
| 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 | |
| *https://github.com/interlegis/sapl/blob/3.1.x/solr/docker-compose.yml* (verifique os mapeamentos de volume estão corretos, a verso do SAPL referenciada no arquivo docker-compose.yml, e realize o backup de seu BD **antes** de qualquer tentativa de substituição do arquivo *docker-compose.yml* em uso corrente); | |
|  | |
| 1) Faça o download da distribuição *binária* do Apache Solr do site oficial do projeto **http://lucene.apache.org/solr** | |
|  | |
|  | |
|    As instalações Solr suportadas até o momento vão da 7.4 à 8; | |
|  | |
| 
 | |
| 2) Descompacte o arquivo em uma pasta do diretório (referenciada neste tutorial como $SOLR_HOME) | |
|  | |
| 
 | |
| 3) Inicie o Solr com o comando: | |
|  | |
|     **$SOLR_HOME/bin/solr start -c**  | |
|      | |
| 
 | |
| 4) Por meio do browser, acesse a URL **http://localhost:8983** (ou informe o endereço da máquina onde o Solr foi instalado) | |
|  | |
| 5) Pare o servidor do SAPL; | |
|  | |
| 6) Edite o arquivo .env adicionando as seguintes linhas: | |
|  | |
|     USE_SOLR = True | |
|  | |
|  | |
|     SOLR_COLLECTION = sapl | |
|  | |
|  | |
|     SOLR_URL = http://localhost:8983 | |
|  | |
|  | |
|  (o valor do campo SOLR_URL deve corresponder à URL acessada no item 3) | |
|  | |
| 7) Entre no diretório raiz do SAPL e digite o comando: **python3 solr_api.py -c sapl -u http://localhost:8983`** | |
|  | |
|     (a URL informada acima deve ser a mesma dos itens 3 e 6) | |
|  | |
| 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 'Pesquisa Textual' na tela de busca tradicional. | |
|  | |
| **Observações:** | |
|  | |
| * Para parar o Solr execute o comando **$SOLR_HOME/bin/solr stop** | |
|  | |
| 
 | |
| * 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 <N>** : reindexa os documentos inseridos/alterados nas últimas <N> 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.
 | |
| 
 |