Pregunta

Estoy creando una página de búsqueda donde podemos encontrar el producto ingresando el texto.

ex:Trae la noche.

Mi consulta trae los registros que contienen al menos una palabra de esto.

Necesidades:1.La primera fila debe contener el registro con la oración dada.2.segunda fila más coincidente.3.Tercera fila siguiente coincidente... etc.

Cómo lograr esto.¿Existe algún algoritmo para esto?Será más útil si alguien comparte su idea.

Editar:

Orden de búsqueda de muestra:

1. Brings on the night
2. Whoever Brings the Night
3. Night Baseball Brings
4. Night ride
5. Night Round
6. Brings flower

Geetha

¿Fue útil?

Solución

¿Usted ha intentado la búsqueda de texto completo? http://msdn.microsoft.com/en-us/library/ms142583. aspx

Otros consejos

La construcción de un motor de búsqueda es una tarea muy compleja, que trata de la ambigüedad, el lenguaje humano, errores tipográficos, y mucho más. Usted debe tratar de usar lo que viene con su motor de base de datos. SQL Server y SQLite ellos tienen fuera de la caja y la mayoría de otras bases de datos probable que tenga capacidades similares. Estos motores no son particularmente buenos, pero debería ser suficiente para escenarios simples. Para el trabajo más serio, trata de Lucene, que viene en varios sabores para diferentes lenguajes de programación.

Como una solución muy simple que podría utilizar operador LIKE de SQL. En lugar de

  

seleccione object_name de nombre_tabla donde el parámetro = algo

Usted haría

  

seleccione object_name de nombre_tabla donde el parámetro como algo

Este trabajo podría, por escenarios muy simples

Algunos punteros
- probar sus RDBMS búsqueda de texto completo o investigar soluciones como Lucene / Solr
- hay implementaciones de distancia (Levenshtein) en SQL , por no mano tan trivial hizo clasificación
- n-gramas (bigramas, trigramas) puede hacer mucho, ver por ejemplo, todos las opciones en postgres búsqueda interna en comparación con mySQL o MSSQL

búsquedas RDBMS interna (postgres podrían ser una excepción) por lo general tienen muy pocas opciones, la implementación de su propia suele ser demasiado duro o RDBMS no dejaría que lo haces (eficientemente).

En Java, deberá Lucene

También hay un puerto para que en PHP (Zend Lucene).

También tiene un puerto para C # Lucene .NET

Con sólo cambiar sus modelos dB Puede integrarla en el motor de búsqueda.

Tenga una mirada. He usado Lucene en el pasado y siempre ha sido muy eficaz y eficiente.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top