2010-02-27 34 views
5

¿Cuál será mejor entre la siguiente opción?Servidor SQL y expresiones regulares

  1. ¿Expresiones regulares en las búsquedas de SQL Server, ya que las nuevas versiones son compatibles con los objetos CLR?
  2. ¿Búsqueda de texto completo?
  3. Lucene.net combinado con SQL Server?

Nuestra base de datos tendrá millones y millones de registros y brindaremos una opción de búsqueda similar a la de Google, y al igual que Google busca cualquier cosa, solo buscaremos algunas categorías específicas.

Por favor ayuda.

Respuesta

6
  1. Regular Las expresiones son correctas siempre que sus datos sean pequeños, muy pequeños.

  2. Búsqueda de texto completo con SQL es una buena opción. Personalmente, no me gusta esta opción porque la sintaxis de búsqueda no es tan expresiva como Lucene.Net. Pero de cualquier manera, es una buena forma de obtener rápidamente una búsqueda de texto completo, sin entrar en muchos detalles.

  3. Lucene.Net le da más control/responsabilidad de crear y mantener el índice, así que si esto no te asusta, Lucene.Net te brinda resultados de alta calidad y puedes hacer mucho con él. Puede personalizar y retocar prácticamente todo para que su motor de búsqueda funcione de la manera que desea que funcione. Yo personalmente elegiría Lucene.Net.

In sort.

  1. no use expresiones regulares.
  2. La búsqueda de texto completo de SQL Server es una manera rápida y fácil de obtener una búsqueda decente, sin tener que recurrir a la técnica.
  3. Lucene.Net es el mejor por su calidad de resultados, pero requiere que aprendas algo (si eres nuevo).
3

Para buscar grandes cantidades de datos, quiere un índice de texto completo. Las expresiones regulares son más flexibles y pueden proporcionar más poder a sus usuarios para expresar sus consultas, pero será más lento.

Lucene es una excelente elección, pero es posible que encuentre que las funciones incorporadas que SQL Server ya cubrieron sus necesidades.

2

A pesar de ser un fan de todo lo relacionado con SQL Server, yo preferiría lucene.net a través de la búsqueda de texto completo de SQL Server.

Cuestiones relacionadas