Browse Source

add campos para indexação em full text search

inclui os campos (ementa, indexação e observação) na busca FTS. Este
procedimento é relevante para que documentos digitalizados sem OCR
tenham condições mínimas de serem catalogados na busca textual.
pull/1607/head
LeandroRoberto 7 years ago
parent
commit
3d6c67d655
  1. 19
      sapl/base/search_indexes.py
  2. 3
      sapl/templates/search/search.html

19
sapl/base/search_indexes.py

@ -105,6 +105,9 @@ class TextExtractField(CharField):
r += list(filter(lambda x: x.strip(), dispositivos))
return ' '.join(r)
def string_extractor(self, value):
return value
def extract_data(self, obj):
data = ''
@ -135,7 +138,11 @@ class DocumentoAcessorioIndex(SearchIndex, Indexable):
model = DocumentoAcessorio
text = TextExtractField(
document=True, use_template=True,
model_attr=(('arquivo', 'file_extractor'), )
model_attr=(
('arquivo', 'file_extractor'),
('ementa', 'string_extractor'),
('indexacao', 'string_extractor'),
)
)
def get_model(self):
@ -154,7 +161,10 @@ class NormaJuridicaIndex(DocumentoAcessorioIndex):
document=True, use_template=True,
model_attr=(
('texto_integral', 'file_extractor'),
('texto_articulado', 'ta_extractor')
('texto_articulado', 'ta_extractor'),
('ementa', 'string_extractor'),
('indexacao', 'string_extractor'),
('observacao', 'string_extractor'),
)
)
@ -165,6 +175,9 @@ class MateriaLegislativaIndex(DocumentoAcessorioIndex):
document=True, use_template=True,
model_attr=(
('texto_original', 'file_extractor'),
('texto_articulado', 'ta_extractor')
('texto_articulado', 'ta_extractor'),
('ementa', 'string_extractor'),
('indexacao', 'string_extractor'),
('observacao', 'string_extractor'),
)
)

3
sapl/templates/search/search.html

@ -51,6 +51,7 @@
{% if result.object|search_get_model == 'm' %}
<p>
<strong>Matéria Legislativa: </strong> <a href="{% url 'sapl.materia:materialegislativa_detail' result.object.pk %}">{{ result.object }}</a></br>
{{result.object.ementa}}<br>
{% if result.object.texto_original %}
<strong>Texto Original:</strong> <a href="{{result.object.texto_original.url}}"> Clique aqui </a></br>
@ -65,6 +66,7 @@
{% elif result.object|search_get_model == 'd' %}
<p>
<strong> Documento Acessório: </strong><a href="{% url 'sapl.materia:documentoacessorio_detail' result.object.pk %}">{{ result.object }}</a></br>
{{result.object.ementa}}<br>
{% if result.object.arquivo %}
<strong>Texto Original:</strong> <a href="{{result.object.arquivo.url}}"> Clique aqui </a></br>
{% else %}
@ -75,6 +77,7 @@
{% elif result.object|search_get_model == 'n' %}
<p>
<strong> Norma Jurídica: </strong><a href="{% url 'sapl.norma:normajuridica_detail' result.object.pk %}">{{ result.object }}</a></br>
{{result.object.ementa}}<br>
{% if result.object.texto_integral %}
<strong>Texto Original:</strong> <a href="{{result.object.texto_integral.url}}"> Clique aqui </a></br>
{% endif %}

Loading…
Cancel
Save