Vb.net 搜索引擎

Vb.net 搜索引擎,vb.net,Vb.net,大家好,我是一个新手程序员,我正在尝试用VB构建一个以MySQL为后端的搜索引擎。数据库不是那么大,只是存储了一些概念,而是以图像、文本、PDF的形式存储的 现在我已经成功地连接到了我的数据库,但我不知道要编写什么代码才能像谷歌一样获得搜索结果。 例如,如果我搜索选择文本格式,我应该在段落中获得结果,如果其图像,则结果应该是存储在我的数据库中的图像。有人能帮我写代码吗,因为我不知道从哪里开始这是我几年前做的: Imports System.Linq Imports System.Linq.Exp

大家好,我是一个新手程序员,我正在尝试用VB构建一个以MySQL为后端的搜索引擎。数据库不是那么大,只是存储了一些概念,而是以图像、文本、PDF的形式存储的

现在我已经成功地连接到了我的数据库,但我不知道要编写什么代码才能像谷歌一样获得搜索结果。
例如,如果我搜索选择文本格式,我应该在段落中获得结果,如果其图像,则结果应该是存储在我的数据库中的图像。有人能帮我写代码吗,因为我不知道从哪里开始这是我几年前做的:

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 to entities

不要滚动你自己的,只要使用如果DB包含一个属性,指示每个项目是否为Img、Txt、PDF、MP4等,这是搜索SQL、.Filter或类似内容中的WHERE子句的问题,这取决于你如何显示返回的数据。显示一些代码,或者我们不知道从哪里开始。我需要文本框中的txt结果、图片框中的图像结果和列表形式的PDF结果,在列表中,我可以单击单个文件名,并将其显示在Formi上的PDF阅读器工具中,如果有问题,或者如果您不喜欢我的答案,请向我提供信息,而不是-1担心我是stackoverflow的新手,我犯了错误,正如我在成为一名工程师之前所提到的那样rookie@TheRookie字体别担心,你没做。你需要125个声望才能投否决票。