INSERT INTO indicenoticias VALUES (1,'Contenido de la noticia','Título','http://www.saberpsicologia.com/');
Como podéis ver es básicamente un subconjunto de SQL.
En previsión de que en un futuro tendré que utilizar este código para otros índices distintos, pensé que estaría muy bien crear una clase "SphinxDoc" que contuviera un número no determinado de campos, de manera que no fuera necesario cambiar el código si utilizo otro índice con distintos campos.
Inicialmente pensé en un constructor con dos parámetros, un id, y una lista de campos. Pero después pensé que sería interesante que el constructor aceptase un número indeterminado de campos y como nunca había programado una función de este tipo decidí probar si era muy difícil.
Y la verdad es que es realmente sencillo en .NET, de hecho me lo esperaba una sintáxis mucho más compliada, el código del constructor es el que sigue:
Public Class SphinxDoc Private me_id As Int64 Private me_fields As List(Of String) Public Sub New(id As Int64, ParamArray fields() As String) me_id = id me_fields = New List(Of String)(fields) End Sub Public ReadOnly Property Id As Int64 Get Return me_id End Get End Property Public ReadOnly Property Fields As List(Of String) Get Return me_fields End Get End Property End Class
Simplemente declarando el parámetro de entrada con ParamArray ya recibimos los argumentos con un vector (en mi caso de Strings).
Esto permite que la llamada al constructor quede muy elegante:
Dim doc As New SphinxDoc(noticia.id, noticia.Texto, noticia.Titulo,noticia.URL)
Con esto termino el artículo, espero que os haya servido de ayuda, si hubiera sabido que era tan fácil de declarar lo habría usado hace ya mucho tiempo.
No hay comentarios:
Publicar un comentario