求助:请问对于分词搜索,如何根据分析出的关键字,对查询结果进行匹配度排序。如用户输入  JAVA软件工程师  搜索。希望输出的结果是:   JAVA软件工程师  (完全匹配排最前)
                     ……
                     ……
                     软件工程师    (部分匹配排后)
                     ……
                     JAVA
                     ……
                     工程师    (以下按匹配程度依次往后排) 
                     ……
                     ……
                     软件
                     ……
  
我现在的做法是在数据库中用union连接查询。
如: (select * from t_xxx t where  t.name like %JAVA软件工程师%)  UNION  (select * from t_xxx t where t.name like %软件工程师%)
    UNION  (select * from t_xxx t where t.name like %JAVA%)  UNION  ……

解决方案 »

  1.   

    select * from t_xxx t where  t.name like %JAVA%软件%工程师%
      

  2.   

    关注一下
    把union拆开,拆成sql的String数组
    循环数组做查询操作
    不知道这个和union性能比怎么样
      

  3.   

    我晕,你这样比union效率更低
    想想都知道,
    sql的String数组没每次查询都得开启connect,resultset之类的东西,还不如一次查询完事
      

  4.   

    楼主看来是想做搜索引擎啊 可以去参考一下http://www.souzhi.cc
      

  5.   

    这个问题超出了数据库的范围吧,
    一般会对字段用Lucene之类的对字自段作索引
      

  6.   

    这样的需求是仿 搜索引擎  如果你设计项目的话 ,用lucene 吧,在不把你这个问题到MS-SQL区提问下,那的数据库牛人多。
      

  7.   

    用搜索引擎吧 java的话推荐lucene 然后用分词可以完成你的要求 单纯用sql语句 好像很难实现你要的效果和效率