ASP.NET-如何正确分割字符串进行搜索?
我正在尝试建立一个类似于Google的搜索(关于用双引号封装的精确匹配) 让我们用下面的短语作为例子 “短语搜索”单个术语[不同短语] 当前如果我使用以下代码ASP.NET-如何正确分割字符串进行搜索?,asp.net,linq-to-sql,search,key-value,Asp.net,Linq To Sql,Search,Key Value,我正在尝试建立一个类似于Google的搜索(关于用双引号封装的精确匹配) 让我们用下面的短语作为例子 “短语搜索”单个术语[不同短语] 当前如果我使用以下代码 Dim searchTermsArray As String() = searchTerms.Split(New String() {" ", ",", ";"}, StringSplitOptions.RemoveEmptyEntries) For Each entry In searchTermsAr
Dim searchTermsArray As String() = searchTerms.Split(New String() {" ", ",", ";"}, StringSplitOptions.RemoveEmptyEntries)
For Each entry In searchTermsArray
Response.Write(entry & "<br>")
Next
其中,表1是一个包含一般信息的表,表2是一个类似于stackoverflow的“标签”表
有人能告诉我如何正确地捕获输入吗?Regex是你的朋友。请参见正则表达式是您的朋友。请看你想做的并不是那么简单。实现“类似于谷歌的”搜索远远超出了解析搜索字符串的范围 我建议您不要重新发明轮子,而是使用生产就绪的解决方案,如or。它们处理解析和全文搜索
但是如果你只需要解析这种字符串,那么你应该真正考虑Pete所指的解决方案。
你想做的不是微不足道的。实现“类似于谷歌的”搜索远远超出了解析搜索字符串的范围
我建议您不要重新发明轮子,而是使用生产就绪的解决方案,如or。它们处理解析和全文搜索但是如果你只需要解析这种字符串,那么你就应该真正考虑Pete所指的解决方案。
取决于你计划得到的效果如何,你可以考虑包含反讽的搜索文法/实现。p>
取决于你计划在获取中的想象力,你可以考虑包含反讽的搜索文法/实现。p>
搜索字符串解析是一个非常规问题。这意味着,虽然正则表达式可能会变得非常接近,但如果不使用专有扩展、构建一个无法维护的混乱表达式、留下令人讨厌的边缘案例,或者三者的某种组合,它就无法实现 相反,有三种正确的处理方法:
我要做的是构建一个状态机来逐个字符解析字符串。这将是实现完全正确的解决方案的最简单方法,也应该产生最快的代码。搜索字符串解析是一个非常规问题。这意味着,虽然正则表达式可能会变得非常接近,但如果不使用专有扩展、构建一个无法维护的混乱表达式、留下令人讨厌的边缘案例,或者三者的某种组合,它就无法实现 相反,有三种正确的处理方法:
我要做的是构建一个状态机来逐个字符解析字符串。这将是实现完全正确的解决方案的最简单方法,也应该产生最快的代码。强烈要求对“类似于谷歌”发表尖刻评论。我只是以此作为参考点。我希望能够搜索包含在双引号中的多个单词,而不是将它们拆分成单个单词。强烈要求对“类似于谷歌”发表尖刻评论。我只是以此作为参考点。我希望能够搜索包含在双引号中的多个单词,而不是将它们拆分为单个单词。如果您真的想搜索类似于“谷歌搜索”的功能,请绝对推荐lucene.net。搜索是我应用程序的一个很小的部分。基本上,该网站是一个事件列表网站,我需要能够搜索关键字(如乐队或场馆名称-包括带空格的名称),但如果它们使用方括号,还可以通过标记进行过滤。好的。。。在研究了Lucene.NET之后,它似乎是适合我的解决方案。谢谢你的指导。如果你真的想要类似于“谷歌搜索”的搜索功能,请推荐lucene.net。搜索是我应用程序中很小的一部分。基本上,该网站是一个事件列表网站,我需要能够搜索关键字(如乐队或场馆名称-包括带空格的名称),但如果它们使用方括号,还可以通过标记进行过滤。好的。。。在研究了Lucene.NET之后,它似乎是适合我的解决方案。感谢您的指导。虽然此链接可以回答问题,但最好在此处包含答案的基本部分,并提供链接供参考。如果链接页面发生更改,仅链接的答案可能会无效。而此链接可能会回答问题
phrase search | table1
single | table1
terms | table1
different phrase | table2