hope1983(亢龙有悔浪子回头) 说的什么意思啊?
想知道答案的帮我顶啊,谢了!

解决方案 »

  1.   

    呵,我想一般是用%keywords%进行模糊匹配的,不过可以直接用前模糊%keywords,后模糊keywords%来进行,
    其实第二个问题你可以先看看数据库方面的知识再提问的,其余的就不太清楚了,给你up一下
      

  2.   

    to:  52juanjuan(Fibona) 
    前模糊%keywords据我所知是不能利用索引的,我只是想知道有没有避免扫描所有行的办法。谢谢!to:  ccterran(iwind)
    你用一个关键字在http://www.palmgear.com上搜索一下呢,列出的结果中有score项,这不是相似度又是什么?
      

  3.   

    score有这个意思吗?相似度应该是similarity ,PHP中有计算相似度的函数
    similar_text
    (PHP 3>= 3.0.7, PHP 4 )similar_text --  Calculate the similarity between two strings 
    Description
    int similar_text ( string first, string second [, float percent])
      

  4.   

    CHARINDEX
    返回字符串中指定表达式的起始位置。 语法
    CHARINDEX ( expression1 , expression2 [ , start_location ] ) 参数
    expression1一个表达式,其中包含要寻找的字符的次序。expression1 是一个短字符数据类型分类的表达式。expression2一个表达式,通常是一个用于搜索指定序列的列。expression2 属于字符串数据类型分类。start_location在 expression2 中搜索 expression1 时的起始字符位置。如果没有给定 start_location,而是一个负数或零,则将从 expression2 的起始位置开始搜索。返回类型
    int注释
    如果 expression1 或 expression2 之一属于 Unicode 数据类型(nvarchar 或 nchar)而另一个不属于,则将另一个转换为 Unicode 数据类型。如果 expression1 或 expression2 之一为 NULL 值,则当数据库兼容级别为 70 或更大时,CHARINDEX 返回 NULL 值。当数据库兼容级别为 65 或更小时,CHARINDEX 仅在 expression1 和 expression2 都为 NULL 时返回 NULL 值。 如果在 expression2 内没有找到 expression1,则 CHARINDEX 返回 0。
      

  5.   

    如果使用charindex的话,索引就用不上了。
    如果用like '%keywords',索引也用不上了。用like 'keywords%' 的话索引是可以用的
      

  6.   

    要查找一个关键字的话,
    我想肯定要扫描所有行,
    不然怎么知道里面有没有这个关键字呢??
    要不就是像 inelm(木野狐) 所说的去做。
      

  7.   

    各位不知在什么地方高就,我现在用的是php+mySQL,你们用的是什么数据库?能不能透露一点啊?呵呵
      

  8.   

    按上面说的去做.数据库偶还是用Access.偶穷.没法啦!!
      

  9.   

    inelm(木野狐) 的方法不错、
    较好的方法是增加一个关键字字段,
    录入这个书的信息的时候就添加相应的搜索信息或者就是索引。实在不行建议用存储过程来做会快些。
      

  10.   

    看了上面的回复,个人也是觉得还是做个字段,专门摆放关键字信息,搜索量不是太大。速度应该比你搜索行(everyone)要快。或者分段查询,就是比如按日期划分,然后在此段记录里查询,减少量。提高速度,当然还是用存储过程了。一个合理的SQL查询加合理的数据库设计,查询起来,应该也是很快的吧!!
    只能这样帮你啦!!!
      

  11.   

    colee(浪漫的惊喜),就是啊,能不能说得详细一点啊