Skip to content
This repository has been archived by the owner on Aug 7, 2018. It is now read-only.

Melhorar a qualidade da busca por palavras-chaves #449

Open
leonardofl opened this issue Mar 25, 2018 · 7 comments
Open

Melhorar a qualidade da busca por palavras-chaves #449

leonardofl opened this issue Mar 25, 2018 · 7 comments

Comments

@leonardofl
Copy link
Member

A busca por palavras-chaves utiliza o Elastic Search e um processo de "stemmer", que compara as raízes das palavras pra melhorar a qualidade das buscas. Mas há várias opções de configuração de stemmer no ES. E me parece que a nossa não está tão boa assim. Segue alguns exemplos que funcionam e outros que não:

ok
cmsp: trabalhador -> trabalho
cmsp: escola -> escolas, escolar
conv: guilhotina -> guilhotinar

not ok
conv: nobreza -> nobres
conv: escolar -> escolas
conv: contratação -> contratar

Seria legal melhorar a configuração de stemmer do ES pra fazer os exemplos "not ok" funcionarem.

Usar outra ferramenta para a busca, como o próprio postgres, por exemplo, também é opção.

Referência: https://www.elastic.co/guide/en/elasticsearch/guide/current/stemming.html

Atentar para os problemas de Understemming e Overstemming.

Estamos usando o stemmer por dicionário: https://www.elastic.co/guide/en/elasticsearch/guide/current/hunspell.html

@diraol
Copy link
Member

diraol commented Mar 31, 2018

Acho que o PR #321 por ajudar também!

@hpe95
Copy link
Contributor

hpe95 commented Apr 12, 2018

Entao, estamos estudando elasticsearch pra fecharmos a issue. Mas estamos com alguns problemas.

1 - Seguindo a documentacao de instalacao desse link https://github.com/eduardohideo/radar/blob/821465daf91c58980b826c4e849ce62af8098ec0/doc/INSTALL.md, após verificar que o ElasticSearch esta rodando na porta http://localhost:9200, nao estamos conseguindo configurar a engine de busca, mais precisamente a etapa 8.

2 - No estado atual do projeto, o ElasticSearch é executado toda vez que chamamos algum importador, correto? Nesse caso, como podemos ver o resultado do processo do stemmer?

@eduardohideo
Copy link
Contributor

eduardohideo commented Apr 12, 2018 via email

@diraol
Copy link
Member

diraol commented Apr 12, 2018

@peddrro repare que esse link que você postou está super desatualizado.
Hoje estamos usando docker para lidar com toda nossa stack, incluindo o elasticsearch... não tem mais instalação "manual" nem nada assim.
Aquele "INSTALL.md" já não server mais de referência, ele foi substituído por este: https://github.com/radar-parlamentar/radar/blob/master/doc/SETUP.md

@hpe95
Copy link
Contributor

hpe95 commented Apr 12, 2018

@diraol sim, reparei isso. Conseguimos rodar aqui com o docker, muito obrigado.

@eduardohideo Entao estamos com problema de que o "stemmer" nao consegue encontrar ocorrencias de escola, escolas e escolar a partir de "escolas". O que estamos usando para realizar os testes, é com esse comando aqui:

sudo docker-compose exec django curl -XGET 'http://elasticsearch:9200/radar_parlamentar/_analyze?analyzer=my_analyzer&text=escolas' | python3 -m json.tool

e estamos recebendo isso:

{
    "tokens": [
        {
            "token": "escol",
            "start_offset": 0,
            "end_offset": 7,
            "type": "<ALPHANUM>",
            "position": 0
        }
    ]
}

esse "token" deveria vim com os valores escola, escolas e escolar? Ou esse teste deveria ser realizado de outra forma?

@eduardohideo
Copy link
Contributor

eduardohideo commented Apr 13, 2018 via email

@leonardofl
Copy link
Member Author

Observem no docker compose a versão q estamos usando do ES. Estamos usando uma versão velha, pq versões mais novas exigem um comando bem intrusivo* no SO do hospedeiro do container!

  • Não lembro ql, mas algo como configuração de baixo nível da RAM.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

4 participants