<commit_before>### Revision History
* 3.4.112
 * `NCubeManager.search()` now allows the returned `NCubeInfoDto` list to be filtered by a set of tags.  `NCubes` that specify the meta-property `cube_tags`, which is a comma and/or space separated list of tags, will be matched against a list of tags passed in the `search()` options. The `NCubeManager.search()` option `NCubeManager.SEARCH_FILTER_INCLUDE` key is mapped to a comma and/or space separated list of tags.  NCubes that have these tags will be returned.  If no tags are specified for the include option, then all NCubes are included (other filtering will still be applied). Also, `NCubeManager.SEARCH_FILTER_EXCLUDE` can be set as well. Any `NCubes` that have a tag that is on this list, will not be returned.  The exclude filter will override the include filter. In addition to using a space or comma separated list to specify tags, tags can also be specified a `Collection` of `Strings`.
 
    ```groovy 
    Map options = [:]
    options[(NCubeManager.SEARCH_FILTER_INCLUDE)] = 'foo bar, baz'
    options[(NCubeManager.SEARCH_FILTER_EXCLUDE)] = 'qux'
    NCubeManager.search(appId, null, null, options)  // Only cubes with the `cube_tags` including `foo`, `bar`, or `baz` will be returned, however, if the cube has the tag `qux` it will not be returned.<commit_msg>updated changelog<commit_after>### Revision History
* 3.4.112
 * `NCubeManager.search()` now allows the returned `NCubeInfoDto` list to be filtered by a set of tags.  `NCubes` that specify the meta-property `cube_tags`, which is a comma and/or space separated list of tags, will be matched against a list of tags passed in the `search()` options. The `NCubeManager.search()` option `NCubeManager.SEARCH_FILTER_INCLUDE` key is mapped to a comma and/or space separated list of tags.  NCubes that have these tags will be returned.  If no tags are specified for the include option, then all NCubes are included (other filtering will still be applied). Also, `NCubeManager.SEARCH_FILTER_EXCLUDE` can be set as well. Any `NCubes` that have a tag that is on this list, will not be returned.  The exclude filter will override the include filter. In addition to using a space or comma separated list to specify tags, tags can also be specified a `Collection` of `Strings`.
 
    ```groovy 
    Map options = [:]
    options[(NCubeManager.SEARCH_FILTER_INCLUDE)] = 'foo bar, baz'
    options[(NCubeManager.SEARCH_FILTER_EXCLUDE)] = 'qux'
    
    // Only cubes with the `cube_tags` including `foo`, `bar`, or `baz` will be 
    // returned, however, if the cube has the tag `qux` it will not be returned.
    NCubeManager.search(appId, null, null, options)  
{'fraction_non_alphanumeric': 0.08227374719521316, 'fraction_numerical': 0.0037397157816005983, 'mean_word_length': 4.307539682539683, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '1243474', 'n_tokens_mistral': 791, 'n_tokens_neox': 735, 'n_words': 366}