Search for a String Containing Special Characters

When using the documentUIDsMatchingString API, it’s possible to search for a string that contains special characters. The documentUIDsMatchingString API uses SQLite under the hood, and by default, SQLite doesn’t consider the hyphen to be a searchable character. See the SQLite FTS5 webpage for more information.

The easiest way to work around this SQLite limitation is to pass .matchExactPhrasesOnly in the options dictionary, like so:

let options = [PDFLibrary.Option.matchExactPhrasesOnly: true]
PSPDFKit.SDK.shared.library?.documentUIDs(matching: searchTerm, options: options, completionHandler: { searchString, resultSet in
    print(resultSet)
}, previewTextHandler: { searchString, resultSet in
    print(resultSet)
})
NSDictionary *options = @{ PSPDFLibraryOptionMatchExactPhrasesOnly: @YES };
[PSPDFKitGlobal.sharedInstance.library documentUIDsMatchingString:searchTerm options:options completionHandler:^(NSString *searchString, NSDictionary *resultSet) {
    NSLog(@"%@", resultSet);
} previewTextHandler:^(NSString * _Nonnull searchString, NSDictionary<NSString *,NSSet<PSPDFLibraryPreviewResult *> *> * _Nonnull resultSet) {
    NSLog(@"%@", resultSet);
}];

For more details, refer to the following guides:

If your use case only requires you to search within a specific document instead of your entire library, consider using our text search feature.