zoukankan      html  css  js  c++  java
  • 后端程序员之路 34、Index搜索引擎实现分析3-对文章索引的两层分块

    # part_indexer 对文章根据id的hash进行分块索引
    - 持有 search_index _inc_index[2]; search_index _history_index[2]; 进行实际的搜索操作
    - get_size 调用search_index的search
    - get_all_items 调用search_index的get_all_items
    - search 根据条件获取一批文章
        - 传入user_profile_t、search_params_t、filter_judge用于搜索
        - 传入p_scoring用于打分,当搜索结果多于search_params._count时根据scores取前面的文章
    - get_item
        - 传入doc_id,调用search_index的get_item获取文章
        - 执行search_index.get_forward_index_ptr()->filter_ids()

    # search_index 对文章根据语言、地域、类型进行分块索引
    - 持有 index_box _index_box; IndexBoxes _index_boxes;
        - get_items _index_box.get_items(docid_vect, result, filters)
        - get_all_items _index_box.get_all_items
    - 持有 std::map<std::string, uint32_t> _language_pool,_region_pool,_type_pool
    - inc_data、insert_doc 添加文章
        - 区分文章的LANGUAGE、REGION、TYPE,拼成字符串进行hash作为key
        - _index_boxes[key].insert_doc(doc); 或者 _index_boxes.insert({key, box});
        - _index_box.insert_doc(doc);
    - search
        - generate_keylist search_params->keylist
        - foreach cit in keylist
            - fit = _index_boxes.find( *cit );
            - fit._inverted_index.trigger

  • 相关阅读:
    Spider爬虫清洗数据(re方法)
    Python 操作 mongodb 数据库
    python操作mysql数据库
    BeautifulSoup高级应用 之 CSS selectors /CSS 选择器
    mongoDB在centos7上的安装
    CentOS7安装mongoDB数据库
    [洛谷P4602] CTSC2018 混合果汁
    [洛谷P2605] ZJOI2016 基站选址
    [CF1039D] You Are Given a Tree
    [CF1105E] Helping Hiaset
  • 原文地址:https://www.cnblogs.com/zapline/p/6697531.html
Copyright © 2011-2022 走看看