Jump to content
PatrickLutherdeck

Sistema de busca com balavras não exata

Recommended Posts

Opa, eu estava fazendo um site e queria fazer um sistema de busca melhorzinho, parecido com o google atuaumente uso esse:

WHERE conteudo LIKE '%".$palavra."%'

se o valor que eu quero for 'brasil' ele e achado tambem com: b,r,a,s,i,l,br,bra,sil,si.... varias partes da palavra mas eu queria que tambem fosse encontrado com: brail, brtil.

 

Alquem ajuda aae ^^

Share this post


Link to post
Share on other sites

O mais próxima disto que você vai encontrar o fulltext, provavelmente exista implementações disponíveis por ai que façam isto, mas você terá que criar os mecanismos que digam que "brasil" é próximo a "brail", já que é algo que em um primeiro momento não faz sentido.

Share this post


Link to post
Share on other sites

Acho que não e oq eu busco....

 

queria que isso:

select * from articles WHERE MATCH(title,body) AGAINST ('datbase');

já buscasse o valor 'database'

 

porem so pega com isso:

select * from articles WHERE MATCH(title,body) AGAINST ('database');

Share this post


Link to post
Share on other sites

Patrick, em primeiro lugar, NUNCA e repito NUNCA envie mensagem pedindo ajuda, nós moderadores/usuários somos VOLUNTÁRIOS, caso você deseje uma resposta mais rápida, o correto é contratar alguém, que sendo remunerado poderá ficar 100% do tempo a sua disposição.

 

Isto posto vamos ao problema, conforme citei na mensagem inicial "mais próxima disto que você vai encontrar o fulltext", eu não disse que seria o que você queria, disse que seria o mais próximo, o que você quer é uma "inteligência artificial" que identifique palavras próximas entre si, você teria que começar tudo com um dicionário para ligar a palavra original as suas variantes e um algoritmo para aplicar este dicionário à sua aplicação. É bem provável que isto já exista, mas eu desconheço para o contexto da web, contudo o google é aberto a todos que queiram pesquisar esta questão, inclusive você mesmo.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By Porta
      Oi,
       
      Estou utilizando WAMPSERVER 64 BITS 3.17. E quando aperto num link aparece esses erros:

       
      E quando rodo o mesmo projeto em um servidor WEB (www.exemplo.com.br) e aperto o mesmo link não aparece esses erros acima.
       
      O que esta acontecendo?
       
       
       
    • By rogerblower
      Pessoal tenho a seguinte tabela
      id | id_etapa | id_evento | posicao | nome | pontos
      1  |  1             |        2         |   1           | joao      |  10
      2  |  1             |        2         |   2           | pedro    |  9
      3  |  1             |        2         |   3           | maria    |  8
      4  |  1             |       2          |   4           | jose       |  7
      5  |  2             |      2          |   3           | joao       |  8
      6  |  2             |  2              |   1           | pedro    | 10
      7  |  2             |   2             |  2            | maria    |  9
      8  |  2             |  2              |   4          | jose        |  7
       
      O resultado da consulta pretendido é este
      Pos  |  nome |   pontos
      1      |  pedro   | 19
      2      |   joao   | 18
      3      |  maria  |  17
      4      |  jose  |  14
       
      Com esta consulta não ordenando a coluna posicao como esperado, ela repete a posicao e não faz a soma, ex:
       1     joao     10
       1     pedro     10
      $pontuacaoa = $pdo->prepare("SELECT * FROM contador WHERE id_evento = '$id_evento' GROUP BY nome, posicao ORDER BY pontos DESC posicao ASC"); Com esta outra consulta a soma esta correta o agrupamento nome esta correto, não se repetem, mas a coluna posicao fica fora de ordem;
       
      $pontuacaoa = $pdo->prepare("SELECT * FROM contador WHERE id_evento = '$id_evento' GROUP BY nome ORDER BY pontos DESC posicao ASC"); Não estou conseguindo acertar a consulta, alguém me ajuda?
    • By Kelven
      Bom dia pessoal, estou tendo um problema com uma requisição que estou tentando fazer em javascript (tem que ser em javascript pq a página q faz a requisição é html) de um arquivo em php que está em um servidor php, porém aparece esse erro:
       
      "Access to XMLHttpRequest at 'http://nomedosite.com.br/teste/contador.php' from origin 'null' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource."
       
      Pesquisei no google e até agora nada, como posso resolver o problema do CORS não permitir fazer requisições GET/POST no servidor??
    • By Kelven
      Olá pessoal tudo bem?! Não sou muito experiente com programação, mas preciso fazer um script que poderá ser acessado com qualquer um. É o seguinte, preciso variáveis por get em uma url (e tem q ser pela url pq é o retorno é uma url com variáveis q não dá pra passar por post) por exemplo https://www.exemplo.com/?nome=francisco&email=francisco@gmail.com, quando a pessoa entrar nessa url esses valores serão automaticamente inseridos no banco de dados e esse é o problema, eu preciso de uma forma segura de fazer isso q a pessoa não consiga inserir no banco de dados comandos, etc.
      Alguém sabe como fazer isso?
      o método q eu consegui é muito simples olha e acho q não está seguro
      $host = "localhost"; $user = "root"; $password = ""; $con = mysql_connect($host, $user, $password) or die ("Conection erro!"); mysql_select_db("banco_teste",$con) or die ("Conection database error!"); $nome = $_GET["nome"]; $email = $_GET["email"]; $sql = "INSERT INTO pessoas (nome, email) VALUES ('$nome', '$email')"; $query = mysql_query($sql);  
    • By leandrodesouza14
      Tenho uma duvida.
       
      Estou recebendo dados de um formulário HTML através do método POST. Um desses dados provem de um campo Select com diversos Options.
       
      Eu vou inserir os dados recebidos dos diversos imputs em varias tabelas, qual das tabelas vai depender do que o usuário selecionar no Select.
       
      Por exemplo: Se a pessoa selecionar BMW no Select, os dados do restante do formulário devem ser inseridos na tabela BMW. / Se a pessoa selecionar Fiat no Select, os dados do restante do formulário devem ser inseridos na tabela Fiat.
       
      O codigo que desenvolvi ate agora foi esse:
       
      <form action="cadastrodeveiculo.php" method="post" name="cadastroveiculo"> <p> Fabricante: <select name="marca"> <option value="audi" >Audi</option> <option value="bmw">BMW</option> <option value="chevrolet">Chevrolet</option> <option value="citroen">Citroen</option> <option value="fiat">Fiat</option> <option value="ford">Ford</option> <option value="hyundai">Hyundai</option> <option value="honda">Honda</option> <option value="jeep">Jeep</option> <option value="mb">Mercedes-Benz</option> <option value="mitsubishi">Mitsubishi</option> <option value="nissan">Nissan</option> <option value="peugeot">Peugeot</option> <option value="renault">Renault</option> <option value="toyota">Toyota</option> <option value="volkswagen">Volkswagem</option> </select> Modelo: <input type="text" id="modelo" name="modelo" maxlength="50"> Versao: <input type="text" id="versao" name="versao" maxlength="100"> Ano: <input type="text" id="ano" name="ano" maxlength="12"> Link: <input type="text" id="link" name="link" maxlength="300"> </p> <input class="submit" type="submit" name="cadastrar" value="Cadastrar"> </form> O codigo PHP, da pagina cadastroveiculo.php e o seguinte:
       
      <?php $conn = mysqli_connect("localhost", "leandro", "123", "afxveiculos"); if (!$conn) { die("Connection failed: " . mysqli_connect_error()); } echo "Connected successfully"; $tabela = $_POST['marca']; $modelo = $_POST['modelo']; $versao = $_POST['versao']; $ano = $_POST['ano']; $link = $_POST['link']; $sql = "INSERT INTO (modelo, versao, ano, link) VALUES ('$modelo', '$versao', '$ano', '$link')"; if (mysqli_query($conn, $sql)) { echo "New record created successfully"; } else { echo "Error: " . $sql . "<br>" . mysqli_error($conn); } mysqli_close($conn); header("location: cadastroesquema.html"); ?> Deixei o Insert Into vazio pois não sei que colocar la.
       
      Obrigado galera!
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.