目前正在做一个新闻网.
    我用分词工具把新闻表t_news中的记录新闻标题的字段和记录新闻文本内容的字段提取出来合并为一个字符串并分词,同时提取几个关键字,再把关键字存在关键字t_keyword表中,然后在新闻和关键字关系表t_news_keyword中建立相关对应关系.
    问题是:这样之后我还要不要把分词好的文本写入到新闻表中了?也就是在新闻表中建立一个字段专门用来做全文索引.
    实际上,有了新闻和关键字的关系表之后,用户输入一系列字符串有空格也好有特殊字符串也好,我把这个字符串分词之后得到的也是一个个以空格隔开的字段..想到这里,我恍然大悟,关键字只是一篇新闻中的个别字段..
    呵呵.按上面的处理方法,用户输入的字符串很有可能没有关键词..
    但是,如果我们从每天文章中多提取出一些关键词存入关键字表,是不是就可以不用对大量的新闻内容进行全文检索了呢?
    想了一下,这样的话,用户输入的文本一旦不涉及任何关键词则会返回空.当然我们可以杜绝这种情况,随便返回一些数据.(这样有点不友好)但是当关键字表足够完善的时候,这种情况发生的几率就会很小了.
    而另一方面,无论用户输入什么字符串我们用分词处理然后全文检索.这样确实可以返回精确的结果,不过数据量一旦大了,速率是会很受影响的.而且在分词和建立索引的时候也会有一定的麻烦.比如爬虫爬去新闻和分词处理新闻的时间冲突问题.
    当然,还有一个折中的办法,就是先用关键字来匹配,如果返回的结果为空或少于一定数量,则再用全文检索.这在新闻数据量非常大的时候是会有一定效果的.但依旧不能避免上面说的爬虫和分词处理的时间冲突问题.
    由此,我突然对百度,谷歌之类的搜索引擎才升了强烈的好奇感.真相知道他们用了什么更先进的技术.