Cómo implementar un buscador HTML sin distinguir tildes

Raichu Seguir

Épsilon
Programador
Verificación en dos pasos desactivada
Desde
22 Nov 2013
Mensajes
862
¡Hola betas!

Resulta que he implementado un buscador en un sitio, pero el mismo distingue entre palabras con y sin tilde. Es decir que si alguien busca "Murcielago" y yo había escrito "Murciélago", no encontrará nada, cuando realmente había una entrada que trataba sobre ese tema. ¿Existe algún atributo que pueda agregar para que NO distinga entre palabras con y sin tildes?

Este es el sencillo código actual:

Insertar CODE, HTML o PHP:
<form action="search/" id="cuadrobusqueda" method="get">
  <input id="cadenabusqueda" name="q" />
  <input id="enviar" type="submit" value="Buscar" />
</form>

¡Muchas gracias a todos de antemano! ¡Saludos!
 
Última edición:

Sonyco

Iota
Verificado
Verificación en dos pasos activada
Verificado por Whatsapp
Verificado por Binance
Desde
30 May 2014
Mensajes
2.156
A mi me pasa lo mismo, mi buscador es html en blogger, te paso el tema para que veas la respuesta que me dieron: Tema en Taringa!

Saludos .-
 

Inn0c

Alfa
Verificación en dos pasos desactivada
Desde
29 May 2014
Mensajes
28
El buscador ese es solo ese codigo ?, no tiene un archivo de accion ? donde genere la busqueda, lo que mandaste ahi es el codigo html del form.. y como action tiene search/
 
Última edición:

Raichu

Épsilon
Programador
Verificación en dos pasos desactivada
Desde
22 Nov 2013
Mensajes
862
¡Hola [MENTION=109871]Inn0c[/MENTION]! Es un formulario que, por muy simple que sea, está funcionando. Presenta algunos problemas, como es el hecho de que distinga las tildes y que las búsquedas sean exactas.

Escribir
Insertar CODE, HTML o PHP:
action="search/"
arroja el mismo resultado que
Insertar CODE, HTML o PHP:
action="http://www.dominio.com/search/
Como el sitio está alojado en Blogger, necesito a fuerza mayor que aparezca la palabra search ahí.

¡Gracias a todos por el interés! :D
 

WWWW

Pi
Verificación en dos pasos activada
Desde
4 Mar 2013
Mensajes
5.242
[MENTION=50813]Raichu[/MENTION] [MENTION=26720]tutorialesp[/MENTION] [MENTION=109914]ErinsonHerrera[/MENTION]

Esto es problema de codificación de texto, digamos que uno busca con tilde, pero al salir de una pagina, pasa con cierta codificación a otra y esto genera los famosos códigos "t%E9cnico".

Entonces testeando con el código del buscador y unas urls de blogger.

Entonces la solución es la codificación de donde salen los datos del search:

Este debe tener dentro de <head></head>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>

Poniendo este código, me arroja una url limpia http://www.dominio.com/search/?q=técnico

Pero sin esta etiqueta <meta> me da:

http://www.dominio.com/search/?q=t%E9cnico[/url]

Prueba con este código, recuerda que tu blog debe de estar en codificación
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

Insertar CODE, HTML o PHP:
<html>
<head>

<!-- Con esta etiqueta envía los acentos como están en la url GET -->
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body>
<form action="search/" id="cuadrobusqueda" method="get" >
  <input id="cadenabusqueda" name="q" />
  <input id="enviar" type="submit" value="Buscar" />
</form>

</body>
</html>


---------- Post agregado el 16-jun-2014 hora: 01:55 ----------

Agregando a esto, creo que leí mal la pregunta, pero esto se puede hacer con variables por url de javascript que cuando alguien escribe con acento digamos técnico el javascript detecta que hay una é o cualquier otra letra con acento y la remplace por la que no tiene acento y envié de nuevo con "location" de javascript con la nueva url.

Saludos. :encouragement:
 

Raichu

Épsilon
Programador
Verificación en dos pasos desactivada
Desde
22 Nov 2013
Mensajes
862
¡Muchísimas gracias por la ayuda [MENTION=41434]WWWW[/MENTION]!

Por suerte, me vino configurado como tu dices por defecto, si alguien busca algo con tilde el buscador arroja los datos correctos. Actualmente el problema que sucede es si pasa lo contrario, alguien busca algo que lleva tilde, sin la misma, por ejemplo: "tecnico", en vez de "técnico". En este último caso, el buscador no me arroja ningún resultado, ya que en la entrada se escribió "técnico".

Por lo tanto, lo que me gustaría lograr es que el buscador no distinga palabras con tilde, que cosidere la "e" = "é" = "è" = "ë" etcétera etcétera, que si alguien busca "tecnico" se arrojen los resultados obtenidos tanto para "tecnico" como para "técnico" como para "técnìcö".

Disculpa si no me exprese correctamente.

Nuevamente agradezco tu ayuda WWWW
 

Sonyco

Iota
Verificado
Verificación en dos pasos activada
Verificado por Whatsapp
Verificado por Binance
Desde
30 May 2014
Mensajes
2.156
¡Muchísimas gracias por la ayuda [MENTION=41434]WWWW[/MENTION]!

Por suerte, me vino configurado como tu dices por defecto, si alguien busca algo con tilde el buscador arroja los datos correctos. Actualmente el problema que sucede es si pasa lo contrario, alguien busca algo que lleva tilde, sin la misma, por ejemplo: "tecnico", en vez de "técnico". En este último caso, el buscador no me arroja ningún resultado, ya que en la entrada se escribió "técnico".

Por lo tanto, lo que me gustaría lograr es que el buscador no distinga palabras con tilde, que cosidere la "e" = "é" = "è" = "ë" etcétera etcétera, que si alguien busca "tecnico" se arrojen los resultados obtenidos tanto para "tecnico" como para "técnico" como para "técnìcö".

Disculpa si no me exprese correctamente.

Nuevamente agradezco tu ayuda WWWW

Eso es exactamente lo que yo quiero. Que sea como sea la búsqueda arroje el resultado con o sin tilde.

Sigo el tema para estar pendiente, Saludos.-
 

WWWW

Pi
Verificación en dos pasos activada
Desde
4 Mar 2013
Mensajes
5.242
¡Muchísimas gracias por la ayuda [MENTION=41434]WWWW[/MENTION]!

Por suerte, me vino configurado como tu dices por defecto, si alguien busca algo con tilde el buscador arroja los datos correctos. Actualmente el problema que sucede es si pasa lo contrario, alguien busca algo que lleva tilde, sin la misma, por ejemplo: "tecnico", en vez de "técnico". En este último caso, el buscador no me arroja ningún resultado, ya que en la entrada se escribió "técnico".

Por lo tanto, lo que me gustaría lograr es que el buscador no distinga palabras con tilde, que cosidere la "e" = "é" = "è" = "ë" etcétera etcétera, que si alguien busca "tecnico" se arrojen los resultados obtenidos tanto para "tecnico" como para "técnico" como para "técnìcö".

Disculpa si no me exprese correctamente.

Nuevamente agradezco tu ayuda WWWW

Creo que si buscamos palabras sin tilde digamos:

La entrada dice: Tecnico y la persona busca Técnico, si es posible que aparezcan las entras sin é, pero como te digo solo remplazando las é por e, con algún script.

Pero si lo hacemos al contrario, si que esta algo jodido, ya que si hay un entrada Técnico y escriben Tecnico, ni con javascript seria posible ponerle Técnico, por que existen infinidad de palabras con tilde, al menos que ya tengas controladas las entradas que contengan palabras con tilde y estén en el titulo, entonces haríamos lo que comente anteriormente, remplazar las palabras que tengamos con tilde por las búsquedas que no la tienen.

Digamos mi blog maneja estas palabras en el titulo de las entradas: Técnico, Acción y Canción.

Entonces la persona busca: "El tecnico en accion" entonces por que ya tienes controladas la palabras con tilde de tu blog, entonces sabes que tecnico y accion tienen que llevar tilde, entonces antes de pasar a la búsqueda se pasa un script remplazando ciertas palabras por la que tienes escritas en el script "Técnico, Acción" ya hecho esto re redirecione a search/?q=El Técnico en Acción

Pero tendrías que saber las palabras con anterioridad, de las entradas escritas en el blog, el problema es que la búsquedas solo serian para entradas y no para contenido del blog.

No se si me doy a entender, pero otas soluciones que encuentro son:

1. Escribir las entradas sin tilde, así evitamos estos problemas. (Pero no viene el caso por estética y profesionalismo del blog)

2.Escribirla y redirigir las búsquedas a google:

https://www.google.com.mx/#q=tecnico+site:miblog.blogspot.com

Que en cada búsqueda cambie "tecnico" por la palabra buscada o x variable.

El único problema es que las búsquedas aparecerán solo si google a indexeado las entradas, de lo contrario no aparece nada.

Lo mejor de esto es que "site:miblog.blogspot.com" nos indica que solo busca en este sitio que seria miblog.blogspot.com

Te dejo un ejemplo: entra a este link

https://www.google.com.mx/#q=tecnico+site:frux.blogspot.com

Como veras busca la palabra tecnico sin acento y muestra todas las entradas que contienen en el titulo como en el contenido la palabra técnico con acento y sin acento también y lo mejor de todo, es que solo busca dentro de este blog. que vienen siendo como 18 resultados, ya que solo 18 paginas están indexadas en google.

Claro que no viene mal si alguien sabe otro manera de hacerlo, ya que también me interesa este tema.

PD: La pagina puesta como ejemplo no tiene ninguna relación conmigo y fue solo utilizada como ejemplo.
 

Raichu

Épsilon
Programador
Verificación en dos pasos desactivada
Desde
22 Nov 2013
Mensajes
862
[MENTION=41434]WWWW[/MENTION] Es interesante lo que propones. He visto varios sitios en internet que tienen un buscador y encuentra aquellas entradas que están escritas con tildes, a pesar de que uno las busque sin tildes. El mismo funcionando también a través de un form. Lo que si, la mayoría (o todos) están montados en Wordpress.

¿A alguien se le ocurre alguna otra idea? [MENTION=9679]cicklow[/MENTION] te menciono ya que he visto que sabes muchísimo del tema, a ver si nos puedes dar una mano aquí que estamos bastante perdidos. Por favor no lo tomes mal y mil disculpas por las molestias. ¡Muchísimas gracias!
 

Cicklow

Admin
Épsilon
Verificado
Verificación en dos pasos activada
Verificado por Whatsapp
¡Ha verificado su Paypal!
Suscripción a IA
Desde
30 May 2011
Mensajes
968
Veamos si van a usar javascript... pues aca les dejo un ejemplo de como sacar los acentos:
HTML:
<script>
var dict = {"á":"a", "é":"e", "í":"i", "ó":"o", "ú":"u"} //diccionario
var a = "germán"; //variable a cambiar
var b = a.replace(/[^\w ]/g, function(char) {
  return dict[char] || char;
});
alert(b); //variable cambiada
</script>

tambien lo pueden limpiar con PHP, yo uso:
PHP:
	function _T($mensaje){
		$buscar = "ÀÁÂÃÄÅàáâãäåÒÓÔÕÖØòóôõöøÈÉÊËèéêëÇçÌÍÎÏìíîïÙÚÛÜùúûüÿÑñ´'";
		$reempla = "AAAAAAaaaaaaOOOOOOooooooEEEEeeeeCcIIIIiiiiUUUUuuuuyNn--";
		$mensaje = strtr($mensaje,$buscar,$reempla);
		return $mensaje;
	}

Ya veran como lo manejaran... con javascript pueden modificar la busqueda antes de enviarla... con PHP la modifican antes de hacer la consulta a la base de datos!
 

WWWW

Pi
Verificación en dos pasos activada
Desde
4 Mar 2013
Mensajes
5.242
Veamos si van a usar javascript... pues aca les dejo un ejemplo de como sacar los acentos:
HTML:
<script>
var dict = {"á":"a", "é":"e", "í":"i", "ó":"o", "ú":"u"} //diccionario
var a = "germán"; //variable a cambiar
var b = a.replace(/[^\w ]/g, function(char) {
  return dict[char] || char;
});
alert(b); //variable cambiada
</script>

tambien lo pueden limpiar con PHP, yo uso:
PHP:
	function _T($mensaje){
		$buscar = "ÀÁÂÃÄÅàáâãäåÒÓÔÕÖØòóôõöøÈÉÊËèéêëÇçÌÍÎÏìíîïÙÚÛÜùúûüÿÑñ´'";
		$reempla = "AAAAAAaaaaaaOOOOOOooooooEEEEeeeeCcIIIIiiiiUUUUuuuuyNn--";
		$mensaje = strtr($mensaje,$buscar,$reempla);
		return $mensaje;
	}

Ya veran como lo manejaran... con javascript pueden modificar la busqueda antes de enviarla... con PHP la modifican antes de hacer la consulta a la base de datos!

Si eso había planteado, pero el problema viene cuando hacen una búsqueda, digamos "german" sin acento y uno tiene en sus entradas "germán" entonces al final no encuentra nada ya que no ha sido encontrada ninguna palabra como german.

Lo que propuse fue al así como tu script de diccionario y ir agregando las palabras con acento que contenga tu blog. entonces seria algo así.

HTML:
<script>
var dict = {"german":"germán", "tecnico":"técnico", "accion":"acción", "cancion":"canción", "etc":"étc"} //diccionario
var a = "german"; //variable a cambiar
var b = a.replace(/[^\w ]/g, function(char) {
  return dict[char] || char;
});
alert(b); //variable cambiada
</script>

Claro que ya sabiendo que palabras con acento contiene tu blog.

Saludos, y gracias por el <script> :encouragement:
 

Cicklow

Admin
Épsilon
Verificado
Verificación en dos pasos activada
Verificado por Whatsapp
¡Ha verificado su Paypal!
Suscripción a IA
Desde
30 May 2011
Mensajes
968
Si eso había planteado, pero el problema viene cuando hacen una búsqueda, digamos "german" sin acento y uno tiene en sus entradas "germán" entonces al final no encuentra nada ya que no ha sido encontrada ninguna palabra como german.

Lo que propuse fue al así como tu script de diccionario y ir agregando las palabras con acento que contenga tu blog. entonces seria algo así.

HTML:
<script>
var dict = {"german":"germán", "tecnico":"técnico", "accion":"acción", "cancion":"canción", "etc":"étc"} //diccionario
var a = "german"; //variable a cambiar
var b = a.replace(/[^\w ]/g, function(char) {
  return dict[char] || char;
});
alert(b); //variable cambiada
</script>

Claro que ya sabiendo que palabras con acento contiene tu blog.

Saludos, y gracias por el <script> :encouragement:

Tu solucion es usar distinct en el mysql...
Mysql SELECT DISTINCT y tildes en utf8 [RESUELTO] | Lecciones Prácticas
 

WWWW

Pi
Verificación en dos pasos activada
Desde
4 Mar 2013
Mensajes
5.242

Creo que nos salimos un poco del tema, ya que [MENTION=50813]Raichu[/MENTION] habla sobre la plataforma blogger, pero también creo que este tema debería de ir en el área de blogger.

Pero bueno no se si realmente haya una solución a este problema, pero lo malo seria que no la hubiera, ya que blogger es utilizada por latinos donde se escriben blogs con acentos o ñ's, y la mayoría de las personas busca sin acentos.
 

Cicklow

Admin
Épsilon
Verificado
Verificación en dos pasos activada
Verificado por Whatsapp
¡Ha verificado su Paypal!
Suscripción a IA
Desde
30 May 2011
Mensajes
968
Creo que nos salimos un poco del tema, ya que [MENTION=50813]Raichu[/MENTION] habla sobre la plataforma blogger, pero también creo que este tema debería de ir en el área de blogger.

Pero bueno no se si realmente haya una solución a este problema, pero lo malo seria que no la hubiera, ya que blogger es utilizada por latinos donde se escriben blogs con acentos o ñ's, y la mayoría de las personas busca sin acentos.

Pues nada... solo JS que pase antes... no se puede hacer mas nada... sino que use el buscador de google dentro de blogger!
 

Raichu

Épsilon
Programador
Verificación en dos pasos desactivada
Desde
22 Nov 2013
Mensajes
862
¡Muchísimas gracias por las ayudas y los aportes [MENTION=41434]WWWW[/MENTION] [MENTION=9679]cicklow[/MENTION]! Ahora mismo me pondré a probar que tal funciona. Si veo que no hay otra salida, usaré el buscador de Google como bien ha dicho cicklow.

¡Saludos! ¡Muchísimas gracias!
 

Frank Gomez

Gamma
SEO
Verificación en dos pasos desactivada
Verificado por Whatsapp
Desde
2 Oct 2015
Mensajes
268
Esta es la solucion ideal.
JavaScript:
<script>
var dict = {"á":"a", "é":"e", "í":"i", "ó":"o", "ú":"u"} //diccionario
var a = "germán"; //variable a cambiar
var b = a.replace(/[^\w ]/g, function(char) {
  return dict[char] || char;
});
    //variable cambiada
</script>
 

¡Regístrate y comienza a ganar!

Beneficios

  • Gana dinero por participar
  • Gana dinero por recomendarnos
  • Descubre ofertas de empleo diariamente
  • Negocios seguros
  • ¡Información premium y más!

Acceder

¿Ya tienes una cuenta? Accede aquí

Arriba