ASibutramina, comercializada como Meridia ou Reductil, e um farmaco administradooralmente para tratamento da obesidade, cujo uso vem gerando muita polemica. NoBrasil, pode ser encontrada nas dosagens 10mg (equivalente a 8,37 mg de sibutramina) e 15 mg (equivalente a 12,55 mg desibutramina), sendo vendida mediante prescricao medicae retencao de receita. Encontra-se sob duas formas: sal anidro e cloridratomonoidratado de sibutramina, sendo que a anidra nao possui o numero suficientede estudos clinicos de eficacia e seguranca (razao pela qual a Agencia Nacionalde Vigilancia Sanitaria proibiu a sua importacao para o Brasil).O medicamento prometeacelerar o metabolismo, diminuir a fome e aumentar a sensacao de saciedadede forma a satisfazer o apetite compouco alimento. Age inibindo a reabsorcao dos neurotransmissores: serotonina(em 73%), norepinefrina (em 54%) e dopamina (em 16%), o que ajuda a elevar asaciedade. Assim, o cloridrato de sibutramina conquistou um grandereconhecimento devido a sua eficacia no tratamento da obesidade ehoje e um dos mais conhecidos e procurados medicamentos para a perda de peso noBrasil. Essa semana tive que implementar em um dos meus projetos um sistema de busca full-text. como estou utilizando o Mysql, ele possui um mecanismo de pesquisa integrado. Ha outras bibliotecas de pesquisa como o Lucene, Xapian e Sphinx e todas elas possuem modulos para integra-las ao Django(django-search-lucene, djapian e django-sphinx ) mas no meu caso, como estou utilizando uma hospedagem compartilhada, tenho certas restricoes para instalar algumas bibliotecas, portanto tive que partir para esta alternativa.Bom, vamos ao que e necessario para funcionar a busca:digamos que voce possui um model de noticias:class Artigo(models.Model): data_publicacao = models.DateTimeField("Data de Publicacao", default=datetime.now) titulo = models.CharField(max_length=200) slug = models.SlugField() texto = models.TextField("Texto da noticia") class Meta: ordering = ['-data_publicacao'] get_latest_by = 'data_publicacao' def __unicode__(self): return self.tituloComo esperado, o codigo acima vai gerar um tabela no banco, mas, para a busca funcionar corretamente, teremos que criar "no braco" um indice fulltext para efetuar a busca. Como estamos utilizando o mecanismo de busca do proprio banco. O indice sera atualizado automaticamente quando registros sao inseridos, atualizados, ou excluidos, de modo que os resultados da pesquisa nunca estarao desatualizada. A declaracao CREATE INDEX e utilizado para criar o indice:CREATE FULLTEXT INDEX fti_noticias_artigo ON noticias_artigo(titulo,texto)Bom agora teremos que estender esta funcionalidade ao ORM do Django e criar um manager para o model em que voce quer fazer a busca. Para isso simplesmente copie este codigo no seu models, ou melhor, coloque em um arquivos separado, ja que voce podera aproveita-lo em outros models!Agora, chame o manager do codigo, atribuindo ao atributo objects (ou qualquer outro que voce criar) passando como parametro os campos que voce indexou no mysql:objects = SearchManager(('titulo', 'texto'))e esta pronto!agora para realizar alguma busca utilize o seguinte comando:Artigo.objects.search('minha busca')o metodo search executara uma consulta, verificando se a string que voce enviou se encontra em um dos campos que voce estabeleceu no seu SearchManager.algo mais ou menos assim:SELECT titulo, data_publicacao, slug, texto, MATCH(titulo, texto) AGAINST ('minha busca') AS `relevance`FROM noticias_artigoWHERE MATCH(titulo, texto) AGAINST ('minha busca')O seu manager tambem inclui um campo extra na sua consulta chamado relevance, que e o indice de relevancia da sua pesquisa. Desse modo