diff --git a/backend/src/infrastructure/elasticsearch/client.py b/backend/src/infrastructure/elasticsearch/client.py index 12caf7f..becee49 100644 --- a/backend/src/infrastructure/elasticsearch/client.py +++ b/backend/src/infrastructure/elasticsearch/client.py @@ -536,40 +536,36 @@ class ElasticsearchClient: must_conditions = [] should_conditions = [] - tema_lower = tema.lower().strip() + must_conditions.append({ + "nested": { + "path": "atuacoes", + "query": { + "bool": { + "must": [ + {"term": {"atuacoes.tipo": "Consultor"}} + ], + "should": [ + {"match": {"atuacoes.dadosConsultoria.areaConhecimentoPos.nome": {"query": tema, "boost": 3}}}, + {"match": {"atuacoes.dadosConsultoria.areaConhecimentoPos.areaAvaliacao.nome": {"query": tema, "boost": 5}}}, + {"match": {"atuacoes.dadosConsultoria.areaPesquisa.descricao": {"query": tema, "boost": 2}}}, + {"match": {"atuacoes.dadosConsultoria.areaConhecimentoPos.especialidade": {"query": tema, "boost": 2}}} + ], + "minimum_should_match": 1 + } + }, + "score_mode": "max" + } + }) should_conditions.extend([ - { - "nested": { - "path": "atuacoes", - "query": { - "bool": { - "must": [ - {"term": {"atuacoes.tipo": "Consultor"}}, - { - "bool": { - "should": [ - {"match": {"atuacoes.dadosConsultoria.areaConhecimentoPos.nome": {"query": tema, "boost": 3}}}, - {"match": {"atuacoes.dadosConsultoria.areaConhecimentoPos.areaAvaliacao.nome": {"query": tema, "boost": 5}}}, - {"match": {"atuacoes.dadosConsultoria.areaPesquisa.descricao": {"query": tema, "boost": 2}}} - ] - } - } - ] - } - }, - "score_mode": "max", - "boost": 10 - } - }, { "nested": { "path": "atuacoes", "query": { "bool": { "should": [ - {"term": {"atuacoes.tipo": {"value": "Coordenação de Área de Avaliação", "boost": 8}}}, - {"term": {"atuacoes.tipo": {"value": "Histórico de Coordenação de Área de Avaliação", "boost": 4}}} + {"term": {"atuacoes.tipo": {"value": "Coordenação de Área de Avaliação", "boost": 3}}}, + {"term": {"atuacoes.tipo": {"value": "Histórico de Coordenação de Área de Avaliação", "boost": 1}}} ] } }, @@ -582,8 +578,8 @@ class ElasticsearchClient: "query": { "bool": { "should": [ - {"term": {"atuacoes.tipo": {"value": "Premiação Prêmio", "boost": 3}}}, - {"term": {"atuacoes.tipo": {"value": "Avaliação Prêmio", "boost": 2}}} + {"term": {"atuacoes.tipo": {"value": "Premiação Prêmio", "boost": 2}}}, + {"term": {"atuacoes.tipo": {"value": "Avaliação Prêmio", "boost": 1}}} ] } }, diff --git a/frontend/src/components/SugerirConsultores.jsx b/frontend/src/components/SugerirConsultores.jsx index 7e3403b..7e0b31f 100644 --- a/frontend/src/components/SugerirConsultores.jsx +++ b/frontend/src/components/SugerirConsultores.jsx @@ -160,7 +160,7 @@ const SugerirConsultores = ({ onClose, onSelectConsultor }) => {
{c.foi_coordenador && CA} {c.foi_premiado && P} - {c.situacao === 'Atividade Continua' || c.situacao === 'Ativo' ? ( + {c.situacao && c.situacao.toLowerCase().includes('atividade') ? ( Ativo ) : ( Inativo