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

  • 相关阅读:
    JZ5 替换空格
    数学分析 H 1 复习要点(部分)
    算法贪心
    Python之位运算
    sorted复杂排序cmp_to_key
    算法位运算
    Python3新特性总结 持续更新
    算法树
    H5 ios端微信浏览器下底部工具固定方法
    Eclipse 安装windows10环境
  • 原文地址:https://www.cnblogs.com/zapline/p/6697531.html
Copyright © 2011-2022 走看看