大家好,我以前是做 Java B/S 开发的。对于数据库不是很懂。
我现在公司有个任务就是做 数据的检索:
比如我在客户端查询:  神七
目的:1。从数据库(可能是多个不同的数据库)迅速的把包含  神七  的数据检索出来。
      2. 进行排序。目标:1。要求检索速度很快。(不考虑硬件和网络环境)假设用Mysql。(必须 *****)
      2。排序。(最好有 *** )
      3。多个数据库检索。(这个次要一点 ***  )
       
您的回答?
1.实现  检索速度很快    可以用到  什么技术或者是 其他(索引?)
2.实现  排序            要用到   什么技术或者是 其他
3.听说Lucence本身就支持java分词?还是必须自己实现中文分词算法?

解决方案 »

  1.   

    更正
    3..听说Lucence本身就支持中文分词?还是必须自己实现中文分词算法?数据可能是存在mysql数据库中的
      

  2.   

    Lucence使用来做全文搜索的,杀鸡哪需用牛刀,需求要求你一定要会数据库方面的知识,不会数据库基本上不可能实现你的要求。MYSQL可用MATCH(),或LIKE等相关操作实现。
      

  3.   

    耶。。
    我数据量很大的哦。
    用like效率太慢了。
    可以用lucene吗?
      

  4.   

    你先理解什么是“全文搜索”,就好象WINDOWS系统的搜索功能一样,是对所有数据通用的搜索引擎。而你的数据在数据库中肯定当然最好就用数据库相关的查询。而且lucene用在你这种情况下,也不能提高效率。
      

  5.   

    问题是如果用数据库建索引的话,好像要自己写中文索引算法?
    lucene自身有个二元?
    几百上千万的数据量也不可能用 like 查询吧?
      

  6.   

    楼上说的都不错。 。。如果你要从一篇文章中查询 LUCENE还是有优势的。。
    但若是根据关键字查询的字段不长 。。还不如直接用LIKE 。。在字段上加个索引。。
    这样肯定比LUCENE快 。。否则数据库也没搞头了 。。
      

  7.   

    lucene已有现成的支持中文分词的程序,下载来用就行了
      

  8.   

    我自己测了一下
    我用hibernate的模糊查询出的时间是我用   lucene的时间的10倍,
    被查询的字段很短,用的like查询,
    而且数据量很少,就只有几十条数据。。这能说明什么问题吗?
      

  9.   

    hibernate首次运行当然会慢很多