Pensando nisso e de posse de uma gramática portuguesa, forkei o repositório e criei um encoder com as regras de nosso estimado idioma lusitano. Como alguns meses depois ainda não obtive resposta alguma da equipe do plugin original, promovi então este encoder a um novo plugin: Portuguese Phonetic Plugin.
Para utilizá-lo você precisa clonar o projeto no github e instalá-lo:
git clone https://github.com/timotta/elasticsearch-fonetica-portuguesa.git cd elasticsearch-fonetica-portuguesa ./script/install.sh ~/Programas/elasticsearch-0.20.5Depois é preciso configurar um analyser em config/elasticsearch.yml:
index : analysis : analyzer : fonetico : type : custom tokenizer : standard filter : [ standard, lowercase, foneticaportuguesa_filter, asciifolding ] filter : foneticaportuguesa_filter: type : foneticaportuguesa replace : falseCom tudo configurado, você pode criar um novo indice usando este analyser, como é mostrado abaixo:
$ curl localhost:9200/comfonetica -XPUT -d ' { "mappings" :{ "document" : { "analyzer" : "fonetico" } } }'Com o indice criado e configurado é possivel verificar as transformações de texto da seguinte forma:
$ curl -XGET 'localhost:9200/comfonetica/_analyze?analyzer=fonetico&pretty=true' -d chiclete { "tokens" : [ { "token" : "XICLETE", "start_offset" : 0, "end_offset" : 8, "type" : "Repare que a palavra se transformou em duas. Isso acontece porque a configuração replace do filter está como false.", "position" : 1 }, { "token" : "chiclete", "start_offset" : 0, "end_offset" : 8, "type" : " ", "position" : 1 } ]
Atualmente só testei o plugin com a versão 0.20.5 do elasticsearch, se testarem em outras versões peço que reporte no github. Além disso, nem todas as regras fonéticas foram implementadas, então se você precisar de alguma que esteja faltando, colabore ou solicite lá também.
Nenhum comentário:
Postar um comentário