• Cadastro
  • Fóruns
  • Manual
  • Projetos
  • Seminário
  • Tradução
  • Tutoriais
  • Dicas
Início

Itens ativos

  • Qual tutorial você gostaria de ter no Drupal Brasil?
  • Como criar novas regiões p/ trabalhar com blocos?
  • Alguém aqui já utilizou o slideshow pro? problema com multiplas galerias
  • URGENTE: Criar múltiplas galerias de fotos, com chamada na página principal
  • Preciso de dica: por onde começar a construir esta loja virtual
  • Como aumentar o formulário de contato?
  • E-Commerce para pizzarias... como faço para pedir dois sabores numa pizza?
  • Exibição de conteúdo relacionado em blocos.
  • Bloco login sumiu... oq faço?
  • Upgrade PROBLEMATICA!!
mais

Enquete

Qual tutorial você gostaria de ter no Drupal Brasil?
Tutorial sobre Views
36%
Tutorial sobre CCK
0%
Tutorial sobre criação de Temas
9%
Tutorial sobre criação de Módulos
55%
Um outro (especifique nos comentários)
0%
Total de votos: 11
  • 4 comentários
  • 78 leituras
  • Enquetes antigas

Pesquisa

Google
Web Drupal Brasil

Login do usuário

  • Criar nova conta
  • Solicitar uma nova senha

Parceiros

Assine o RSS do Drupal-BR

RSS dos itens mais ativos

RSS do conteúdo

RSS dos comentários

Início

Correção de erro na criação da tabela temporária temp_search_results com PostgreSQL

Uso o drupal 5.5 com PostgreSQL e a busca por conteúdo não estava retornando resultados, descobri que o PHP para fazer o cálculo de relevância do resultado gerava um número com vírgula, assim o PostgreSQL não conseguia fazer o cálculo e não gerava a tabela temp_search_results.

CREATE TEMPORARY TABLE temp_search_results AS SELECT i.type, i.sid, 5 * (<strong>5,62872396826</strong> * i.relevance) + 5 * POW(2, (GREATEST(n.created, \ n.changed, c.last_comment_timestamp) - 1206739469) * 6.43e-8) + 5 * \ (2.0 - 2.0 / (1.0 + c.comment_count * <strong>0,04</strong>)) AS score FROM temp_search_sids i INNER JOIN search_dataset d ON i.sid = d.sid AND \ i.type = d.type INNER JOIN node n ON n.nid = i.sid LEFT JOIN \ node_comment_statistics c ON c.nid = i.sid WHERE (d.data LIKE 'maven') ORDER BY score DESC;

O problema pode ser resolvido alterando o código no search.module :

A linha abaixo gera o número com vírgula:

$select2 = str_replace('i.relevance', '('. (1.0 / $normalize) .' * i.relevance)', $select2);

É necessário criar uma outra variável para substituir no resultado a vírgula por ponto:

$norm2 = 1.0 / $normalize;

$norm2 = str_replace(',','.',$norm2);

e então alterar a variável na linha em questão:

$select2 = str_replace('i.relevance', '('. ($norm2) .' * i.relevance)', $select2);

Enviado por matheusespanhol em seg, 05/05/2008 - 11:15.
  • Por favor, se logue ou se registre para poder enviar comentários
  • 190 leituras
Designimage

Este site é feito, orgulhosamente, com Drupal.