Ignore:
Timestamp:
2008-06-25T15:38:55+12:00 (16 years ago)
Author:
mdewsnip
Message:

Modifying get_metadata_values() and get_documents_with_metadata_value() to take an array of metadata elements, rather than just one metadata element. This allows building a dynamic classifier on multiple metadata elements.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • gsdl/trunk/src/colservr/sqlbrowsefilter.cpp

    r16040 r16180  
    109109  if (request.requestParams == "GetMetadataValues")
    110110  {
    111     text_t metadata_element_name = "";
     111    text_tarray metadata_element_names;
    112112    text_t metadata_value_filter = "";
    113113    text_t metadata_value_grouping_expression = "";
     
    115115    while (options_iterator != request.filterOptions.end())
    116116    {
    117       if ((*options_iterator).name == "MetadataElement")
    118       {
    119     metadata_element_name = (*options_iterator).value;
     117      if ((*options_iterator).name == "MetadataElements")
     118      {
     119    splitchar ((*options_iterator).value.begin(), (*options_iterator).value.end(), ',', metadata_element_names);
    120120      }
    121121      if ((*options_iterator).name == "MetadataValueFilter")
     
    130130    }
    131131
    132     text_tarray metadata_values = sql_db_ptr->get_metadata_values (metadata_element_name, metadata_value_filter, metadata_value_grouping_expression);
     132    text_tarray metadata_values = sql_db_ptr->get_metadata_values (metadata_element_names, metadata_value_filter, metadata_value_grouping_expression);
    133133
    134134    // Create a map from metadata value to ResultDocInfo_t, to remove duplicate values and obtain occurrence counts
     
    168168  else if (request.requestParams == "GetDocumentsWithMetadataValue")
    169169  {
    170     text_t metadata_element_name = "";
     170    text_tarray metadata_element_names;
    171171    text_t metadata_value = "";
    172172    text_t sort_by_metadata_element_name = "";
     
    174174    while (options_iterator != request.filterOptions.end())
    175175    {
    176       if ((*options_iterator).name == "MetadataElement")
    177       {
    178     metadata_element_name = (*options_iterator).value;
     176      if ((*options_iterator).name == "MetadataElements")
     177      {
     178    splitchar ((*options_iterator).value.begin(), (*options_iterator).value.end(), ',', metadata_element_names);
    179179      }
    180180      if ((*options_iterator).name == "MetadataValue")
     
    189189    }
    190190
    191     text_tarray document_OIDs = sql_db_ptr->get_documents_with_metadata_value (metadata_element_name, metadata_value, sort_by_metadata_element_name);
     191    text_tarray document_OIDs = sql_db_ptr->get_documents_with_metadata_value (metadata_element_names, metadata_value, sort_by_metadata_element_name);
    192192
    193193    // Fill in response.docInfo with the document OIDs
Note: See TracChangeset for help on using the changeset viewer.