通过你的文本"数据库 ABC应用"是根据什么理由得出是文件A的呢?

解决方案 »

  1.   

    文件A内容: 
    数据库的应用与研究 
    文件B内容: 
    计算机中数据库的使用 
    文件C内容: 
    计算机SQLSERVER数据库 
    文件D内容: 
    SQLSERVER数据库的基本语法 
     
     
     
    数据库 ABC应用 有5个字匹配文件A,其他的都少于5个!
      

  2.   

    现在有一段文本,比如:数据库 ABC应用,通过比对数据库里文件的内容,得出文件A的内容,怎么处理? ... 
    没看懂。
      

  3.   

    现在GOOGLE和BAIDU都是一个EDIT去查询,我要实现的是放个MEMO里面填内容然后查询,根据MEMO的内容和数据库记录的匹配度来显示最匹配的前几条数据!
      

  4.   

    select id,convert(varchar(max),i_content) as i_content,0 as Num into # from 表 where charindex('数据库',i_content)>0
    while @@ROWCOUNT>0
    update # set i_content=substring(i_content,charindex('数据库',i_content)+4,len(i_content)), num=num+1 from # where charindex('数据库',i_content)>0
    select id,max(num) from # group by id
    go
    drop table #
    找出来的就是你要的.
      

  5.   

    楼上的误解我的意思了,我要的不是单个比较,而是MEMO里放一段内容,和文本A,文本B,文本C比较,看看哪个匹配的个数最多
    你的那种理解就简单了!
      

  6.   

    declare @memo nvarchar(50),@memo1 nvarchar(10),@memo2 nvarchar(10)...
    set @memo='......'  --此处放你要查询的内容
    set @memo1=left(@memo,charindex(@memo,' ')-1)
    set @memo2=substring(@memo,.....  --此处以后把查询字符串一个个分开
    select id,convert(varchar(max),i_content) as i_content,0 as Num into # from 表 where charindex(@memo1,i_content)>0
    while @@ROWCOUNT>0
    update # set i_content=substring(i_content,charindex(@memo1,i_content)+4,len(i_content)), num=num+1 from # where charindex(@memo1,i_content)>0
    select id,max(num) from # group by id  --此id是@memo1最多的行,可以由此从文件A/文件B...中找出最多的
    .....  --此处再处理@memo2,@memo3....的匹配
    go
    drop table #你的匹配过程不就是个查询过程吗?
      

  7.   

    你的理解大概有些问题,我指的文件A,文件B,文件C,实际是比较复杂的doc内容,包括表格、文字混排。
    而与之比对的MEMO里面的内容也可能是这样,我就想知道,哪个匹配的字符数最大,
    而文件A,文件B,文件C,在数据库中的记录是
    FILEID   FILENAME  FILECONTEXT
    1         文件A       。。
    2         文件B       。。
    3         文件C       。。
    。。怎么把MEMO和FILECONTEXT进行匹配对对比,这里包括MEMO的中的文字和FILECONTEXT表格中的文字进行匹配,类似与GOOGLE,BAIDU
    但是他们是单EDIT的,没有办法输入多行字符,而我的需要就是MEMO多行字符,进行匹配度对比。还要关心速度的问题,如果速度很慢也没有什么实际的使用价值,所以要求还是比较高的!