2.6 °Ë»ö±â´É È®Àå

MULTIPLE_RETRIEVE
RETRIEVE(integrate:SCHEMA_GROUP)
RETRIEVE(integrate:TABLE_GROUP)
RETRIEVE(integrate:SECTION_GROUP)
RETRIEVE_IN_RESULT(integrate:TABLE_GROUP)

Description
RETRIEVE ÇÁ·ÎÅäÄÝÀ» È®ÀåÇÏ¿© ±×·ì´ÜÀ§ °Ë»ö°á°ú¸¦ ¹ÝȯÇÏ´Â ÇÁ·ÎÅäÄÝÀ̸ç, RETRIEVE³ª MULTIPLE_RETRIEVE¿Í ´Þ¸® °Ë»öµÈ °á°ú¸¦ ÀúÀåÇÏÁö ¾Ê´Â´Ù.
integrate¸¦ ÀÌ¿ëÇÏ´Â ¹æ½ÄÀº ¼¼ °¡Áö°¡ ÀÖÀ¸¸ç, ÀÌ Áß SCHEMA_GROUP¿¡ ´ëÇÑ ºÎºÐÀ» ¼³¸íÇÑ´Ù

InParameter

[ÁÖ] RETRIEVE¿¡¼­ »ç¿ëÇÏ´Â ÀϹÝÀûÀÎ ÆÄ¶ó¹ÌÅͿܿ¡ integrate¿Í °ü·ÃµÈ ºÎºÐ¸¸ ¼³¸íÇÑ´Ù.
µðÆúÆ® °ªÀº °ËÀº»öÀ¸·Î Ç¥ÇöµÊ

bool integrate.is_used; [true | false] int integrate.group_type; [SCHEMA_GROUP | TABLE_GROUP | SECTION_GROUP] int integrate.sorting_key_type; [NO_ACTION | K_STRING | K_NUMBER] bool integrate.order; [ASCENDING | DESCENDING] vector integrate.section_namelist; [Á¤·ÄÀ» ¼±ÅÃÇÏ¿´´Ù¸é Á¤·Ä¼½¼Ç(µé)À» ÁöÁ¤] unsigned int integrate.counter [±×·ì´ç °¡Á®¿Ã °á°ú °Ç¼ö] vector integrate.display_section_namelist [°Ë»ö°á°ú¸¦ Ãâ·ÂÇÒ ¼½¼Ç(µé)À» ÁöÁ¤]

OutParameter

vector document_groups;	[±×·ì´ç °á°ú¸¦ ÀúÀåÇÑ ±¸Á¶Ã¼]

Example

    vector table_namelist;  // °Ë»ö ´ë»ó Å×À̺í ÁöÁ¤
    vector section_namelist;    // °£·«º¸±â¿¡¼­ Ãâ·ÂÇÒ ¼½¼Ç¸í

    table_namelist.push_back("blue01");
    table_namelist.push_back("blue02");
    table_namelist.push_back("blue03");

    ClientLIB clientLib(SERVER_IP, SERVER_PORT);

    Cparameter_t p_in, p_out;       // ¸Å°³º¯¼ö Ŭ·¡½º ¼±¾ð 

    p_in.table_namelist = table_namelist;   // °Ë»ö ´ë»ó Å×À̺í ÁöÁ¤
    p_in.space_operator = SPACE_AND;    // °ø¹é ó¸® ¹æ¹ý ÁöÁ¤(ObjectClasses.h ÂüÁ¶)
    p_in.method = BOOLEAN_MODEL;    // °Ë»ö ¸ðµ¨ ÁöÁ¤(ObjectClasses.h ÂüÁ¶)
    string  query = "ABS : Á¤º¸";
    string u_query;             // ÁúÀǸ¦ UTF-8·Î º¯È¯
    EUCKR_TO_UTF8(query, u_query);
    p_in.query = u_query;           // ÁúÀǾî ÁöÁ¤

    // Integrate ¹æ¹ý »ç¿ëÀ» À§ÇÑ ¼¼ÆÃ
    p_in.integrate.is_used = true; // Integrate ¹æ¹ýÀ» »ç¿ë (default´Â false·Î »ç¿ë¾ÈÇÔ)
    // Integrate ¹æ¹ý ÁöÁ¤(TABLE_GROUP(default) | SCHEMA_GROUP | SECTION_GROUP
    p_in.integrate.group_type = SCHEMA_GROUP;

    //------------------- °Ë»ö°á°ú Á¤·Ä Ç׸ñ ÁöÁ¤ -------------------------
    // Á¤·ÄÇü½Ä ÁöÁ¤(default´Â NO_ACTIONÀ¸·Î Á¤·ÄÇÏÁö ¾ÊÀ½)
    p_in.integrate.sorting_key_type=K_STRING; //  NO_ACTION | K_STRING | K_NUMBER
    // À§ÀÇ Á¤·ÄÇü½ÄÀÌ K_STRING | K_NUMBERÀÎ °æ¿ì¸¸ ¾Æ·¡ Ç׸ñµéÀ» ÁöÁ¤
    p_in.integrate.order= ASCENDING;    // ASCENDING(default) | DESCENDING;
    // Á¤·Ä ¼½¼ÇÀº º¹¼ö°³ ÁöÁ¤°¡´É
    p_in.integrate.section_namelist.push_back("CON");
    p_in.integrate.section_namelist.push_back("TIK");
    //------------------- °Ë»ö°á°ú Á¤·Ä Ç׸ñ ÁöÁ¤(³¡) ---------------------

    p_in.integrate.counter = 5; // ±×·ì´ç Ãâ·ÂÇÒ °á°ú °Ç¼ö

    // ±×·ì´ç Ãâ·ÂÇÒ ¼½¼ÇÇ׸ñ ÁöÁ¤
    //p_in.integrate.display_section_namelist.push_back(ALL_SECTIONS);
    p_in.integrate.display_section_namelist.push_back("CLS");
    p_in.integrate.display_section_namelist.push_back("CON");
    p_in.integrate.display_section_namelist.push_back("TIK");

    // °Ë»ö ¼öÇà
    RedirectStdoutInit();   // ¿äû ¼öÇà Áß¿¡ Ãâ·ÂµÇ´Â ¸Þ½ÃÁö ¸·À½...
    int ret_val = clientLib.Request(RETRIEVE, p_in, p_out);
    RedirectStdoutClose();
    if (ret_val != 0) {
        cout << "ERROR : " << p_out.errmsg << "(" << p_out.errcode << ")" << endl;
        return -1;
    }

    int total_count = 0;
    for(int i = 0; i <  p_out.document_groups.size(); i++)  // Å×ÀÌºí ¼ö ¸¸Å­ ·çÇÁ
    {
        total_count += p_out.document_groups[i].df_per_group;
        cout << "========================================================\n";
        cout << " °Ë»ö °á°ú ¹®¼­ ¼ö(±×·ì´ç) : " << p_out.document_groups[i].df_per_group << endl;
        // ±×·ì´ç °ü·ÃµÈ Á¤º¸¸¦ Ãâ·Â
        for(int j=0; j < p_out.document_groups[i].documents.size(); j++)
        {
            cout << "[" << p_out.document_groups[i].documents[j].table_id;
            cout << "," << p_out.document_groups[i].documents[j].document_id;
            cout << "," << p_out.document_groups[i].documents[j].weight;
            cout << "]";

            for(int k=0; k < p_out.document_groups[i].documents[j].sections.size(); k++)
            {
                cout << "[" << UECONVCODE(p_out.document_groups[i].documents[j].sections[k].section_value) << "]";
            }
            cout << endl;
        }
        cout << "========================================================\n";
    }
    cout << "Àüü ±×·ì¼ö : " << p_out.document_groups.size() << endl;
    cout << "Àüü °Ç¼ö : " << total_count << endl;
    cout << "========================================================\n";

    return 0;