比如说关键词匹配多的排在前面,第一页的数据要在标题里面或者显示关键的分词

解决方案 »

  1.   

    就是说输入一个词经过处理我已经实现了分词,然后数据库里的查询我以前是用的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  ……
    这样效率太低且参数不容易控制
    我现在的想法是
    分词后用,分开组合成字符串如中华人民共和国
    分成中华,人民,共和国
    然后新建一个function
    SET QUOTED_IDENTIFIER OFF 
    GO
    SET ANSI_NULLS OFF 
    GOALTER  function split ( @SourceSql varchar(8000), @StrSeprate varchar(10) ) returns @temp table(F1 varchar(100)) as begin declare @i int set @SourceSql=rtrim(ltrim(@SourceSql)) set @i=charindex(@StrSeprate,@SourceSql) while @i>=1 begin insert @temp values(left(@SourceSql,@i-1)) set @SourceSql=substring(@SourceSql,@i+1,len(@SourceSql)-@i) set @i=charindex(@StrSeprate,@SourceSql) end if @SourceSql<>'' insert @temp values(@SourceSql) return end 
    GO
    SET QUOTED_IDENTIFIER OFF 
    GO
    SET ANSI_NULLS ON 
    GO
    然后该怎么办呢?
      

  2.   

    想想用游标循环结合动态sql可以解决但是太慢了,也想用lunece但是不懂
      

  3.   

    lucene.net的StandardAnalyzer
    http://topic.csdn.net/u/20090911/16/e9c4f6e1-7551-4109-9dd7-05f18e5e8e20.html
      

  4.   

    4楼的方法比较靠谱,这个问题用Sql Server弄,有点太为难他了。LZ可以先用Sql Server凑合一下,转lucene是早晚的。