大家好我是新手程序员我正在尝试用VB构建一个搜索引擎,MySQL作为后端。数据库并不是那么大,只是以图像,文本,PDF的形式存储了一些概念。
现在我已设法连接到我的数据库,但我不知道要编写什么代码来获取Google等搜索结果。 对于例如如果我搜索选择文本格式我应该得到段落中的结果,如果它的图像然后结果应该是存储在我的数据库中的图像。任何人都可以帮助我使用代码,因为我不知道从哪里开始
答案 0 :(得分:-1)
这是我几年前所做的:
Imports System.Linq
Imports System.Linq.Expressions
Imports System.Collections.Generic
Imports System.Runtime.CompilerServices
Module PredicateBuilder
Sub New()
End Sub
Public Function [True](Of T)() As Expression(Of Func(Of T, Boolean))
Return Function(f) True
End Function
Public Function [False](Of T)() As Expression(Of Func(Of T, Boolean))
Return Function(f) False
End Function
<System.Runtime.CompilerServices.Extension()>
Public Function [Or](Of T)(expr1 As Expression(Of Func(Of T, Boolean)), expr2 As Expression(Of Func(Of T, Boolean))) As Expression(Of Func(Of T, Boolean))
Dim invokedExpr = Expression.Invoke(expr2, expr1.Parameters.Cast(Of Expression)())
Return Expression.Lambda(Of Func(Of T, Boolean))(Expression.[OrElse](expr1.Body, invokedExpr), expr1.Parameters)
End Function
<System.Runtime.CompilerServices.Extension()>
Public Function [And](Of T)(expr1 As Expression(Of Func(Of T, Boolean)), expr2 As Expression(Of Func(Of T, Boolean))) As Expression(Of Func(Of T, Boolean))
Dim invokedExpr = Expression.Invoke(expr2, expr1.Parameters.Cast(Of Expression)())
Return Expression.Lambda(Of Func(Of T, Boolean))(Expression.[AndAlso](expr1.Body, invokedExpr), expr1.Parameters)
End Function
End Module
我这样使用这个课:
'POST: /Search
<HttpPost()>
Function contactSearch(ByVal search As String, ByVal opportunite As opportunite) As ViewResult
Dim chaine As String = Request("searchString") 'obtient la chaine introduite par l'user au clavier
Dim tabMot() = chaine.Split(New Char() {" "c}) 'transforme la chaine en tableau de mots
Dim distance As Integer
distance = Request("dist") 'obtient la valeur introduite par l'user dans la CBbox
Dim flag As String = "ok" 'sert à dire à la vue qu'on est passé par ici, et qu'il peut tenter d'afficher les résultats de la recherche
Dim n As Integer = 0 'sert à compter le nombre de contacts récupérés. On introduira cette valeur dans la taille du tableau qui sera créé
Dim i As Integer = 0 'sert d'indice dans le tableau dans lequel sont stockées les coordonnées
'Tout ce bloc sert à construire une liste de contacts répondant aux critères
Dim predicate As Expression(Of Func(Of contact, Boolean))
predicate = PredicateBuilder.False(Of contact)()
For Each mot In tabMot
Dim tmp = mot
predicate = predicate.And(Function(m) m.titre.Contains(tmp))
predicate = predicate.Or(Function(m) m.departement.Contains(tmp))
predicate = predicate.Or(Function(m) m.qualifications.Contains(tmp))
predicate = predicate.Or(Function(m) m.langue1.Contains(tmp))
predicate = predicate.Or(Function(m) m.langue2.Contains(tmp))
predicate = predicate.Or(Function(m) m.langue3.Contains(tmp))
predicate = predicate.Or(Function(m) m.langue4.Contains(tmp))
predicate = predicate.Or(Function(m) m.langue5.Contains(tmp))
Next
Dim contacts = db.contact.AsExpandable().Where(predicate).ToList()
希望这会有所帮助。 (我使用Linq实体)