1. 百度/google等搜索引擎的建好的倒排序索引跟词库, 分别如何存放呢? 是存放于数据库的吗?2. lucene的索引好象是存放在文件里,没有放到数据库, 每次查询的时候都要打开一次文件吗? 如果不是,很想知道它跟apache/tomcat是如何交互的?3. lucene的词库是加载到内存的吗?还是每次搜索都要去加载或读取文件?

解决方案 »

  1.   

    有看过百度跟google技术的介绍,1. 网页蜘蛛/机器人, 定时从网上抓取页面, 更新数据信息;
    2. 文本分析器, 分析页面内容,抽取出关键词, 这里用了分词技术;
    3. 建立数据索引,似乎都用了改良的倒排序索引。
    4. 存储索引? 我有个疑问,如果保存在数据库, 如何能够进行快速匹配到词, 难道是直接从数据库里采用SQL语句搜索索引库, 然后获取索引,如何对索引进行合并呢?这个处理过程我很想知道,那么是个大概。
      

  2.   

    估计是存储在二进制xml文件里,因为待搜索的内容太多,数据库存储使用模糊查选的话,估计非常慢.而用xml节点式存储,对于搜索非常快.
      

  3.   


    1. xml节点式存储,就是文件存储了。那么他每次检索都要读取一次文件,毕竟记录很多,文件肯定很大,这时检索也不见得能快。2. 另采用数据库存储,据我了解到一种方法(待确认),采用多服务器同时处理一次检索命令。比如:输入“国家”,此词条的关键字索引,放在多个服务器里(可能是100个),这些服务器同时处理一部分索引,如此就能加快处理速度,处理完的结果如何返回并合并,这里我还是不明白!
      

  4.   


    是啊,它的底层结构和算法可能无法知道的了,了解大致的工作原理比较有希望。现在很多搜索引擎的介绍,都只介绍其收集信息、索引创建的工作原理,
    对其搜索过程原理一概都没有,找了很久我都没发现:(,所以发帖看能否了解到
    点线索,csdn牛人多啊,就看我运气好不好了:)...
      

  5.   

    TO wujinjian2008n,SQL77, js_szy, guguda2008:
    大家一起学习,进步。