当前位置:编程学习 > C#/ASP.NET >>

Winform怎么实现搜索引擎一样的搜索方法

现在用.net2.0 + Access2003做一个小型的应用程序,考虑数据量不是特别大,而且目的是要做一个单机应用程序,所以没有采用其他数据库。
但是,仍然需要运用到数据检索。

据目前所学的SQL查询知识,自己感觉完全不够用。关键字模糊搜索功能太薄弱,觉得无法实现像搜索引擎那样多个关键字用空格隔开就可以比较精确的搜索到内容,然后列出相符合的结果。

所以,想请教论坛里的各位,了解的人能否告诉小弟我一个方法或者给我指条路也行。好让我知道怎么样可以实现这样的功能,谢谢!
--------------------编程问答-------------------- 用split(' ')以空格分隔成一个数组,
然后在分别进行搜索? --------------------编程问答--------------------
引用 1 楼 sb1ue 的回复:
用split(' ')以空格分隔成一个数组,
然后在分别进行搜索?


如果access的一个表的属性有15个,而且其中一个属性是500个字符左右的字符串。在这样的数据库中检索内容,采用稍微繁杂一点的检索语句,检索速度应该会想当慢,而且很吃CPU的吧? --------------------编程问答-------------------- 如果你的数据不是非常庞大的话,应该不会有那么大的影响吧?
话说,用like通配符试试? --------------------编程问答--------------------
引用 3 楼 sb1ue 的回复:
如果你的数据不是非常庞大的话,应该不会有那么大的影响吧?
话说,用like通配符试试?


好的,先试试看,谢谢你的帮助 ^_@ --------------------编程问答-------------------- 查SQL的一个搜索函数!
   专门是用来实现这样的功能!
  --------------------编程问答-------------------- 搜索引擎是一个很专业的技术
至少要能初步的处理自然语言
很复杂的
你可以买本书看看 --------------------编程问答-------------------- 搜索引擎涉及的东西可多了    你说数据量不大  那可以在基本的查询基础上进行些优化  比如你提到的各种分隔符

比如下面的linq 就是过滤和刷选这些分割符的
 if (list != null && list.Count > 1)//对查询结果集根据空格,括号,破则号分割后再进行排序
            {
                list = list.OrderByDescending(a => a.ChaXunCS).
                           OrderBy(a => ((a.SJXH.Substring(a.SJXH.ToLower().IndexOf(m_SJXH.xh.ToLower()) + m_sjXH.SJXH.Length).ToLower().IndexOf(" ")) +
                           
                          a.SJXH.Length).IndexOf(m_sjXH.SJXH.ToLower()) != -1 ? a.SJXH.ToLower().Substring(a.SJXH.ToLower().IndexOf(" ") + 1).IndexOf(m_sjXH.ShouJiXH.ToLower()) : 0) +
                                    (a.SJXH.ToLower().Substring(a.SJXH.ToLower().IndexOf("-") != -1 ? a.SJXH.ToLower().IndexOf("-") + 1 : a.SJXH.Length).IndexOf(m_sjXH.SJXH.ToLower()) == -1 ? (a.SJXH.ToLower().Substring(a.SJXH.ToLower().IndexOf("(") != -1 ? a.SJXH.ToLower().IndexOf("(") + 1 : a.SJXH.Length).IndexOf(m_sjXH.SJXH.ToLower()) != -1 ? a.SJXH.ToLower().Substring(a.SJXH.ToLower().IndexOf("(") + 1).IndexOf(m_sjXH.SJXH.ToLower()) : 0) : 0).ToList();
            }
            return list;


linq能做的SQL也能这么做
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,