This page contains a description of the document filters used during the search.
Setting a filter
To specify which of the documents found should be returned as a result of the search, the SearchDocumentFilter property of the SearchOptions class is used. If the document found does not match the filter, it will not be returned. The default value is null, which means that all documents found will be returned. The following example shows how to set a document filter for searching.
C#
stringindexFolder=@"c:\MyIndex\";stringdocumentsFolder=@"c:\MyDocuments\";// Creating an index in the specified folderIndexindex=newIndex(indexFolder);// Indexing documents from the specified folderindex.Add(documentsFolder);// Creating a search options objectSearchOptionsoptions=newSearchOptions();options.SearchDocumentFilter=SearchDocumentFilter.CreateFileExtension(".txt");// Setting a document filter// Search in the index// Only text documents will be returned as the result of the searchSearchResultresult=index.Search("relativity",options);
File path filters
The first supported type of search document filters allows you to set a regular expression for getting those documents whose full paths match the specified pattern. This type of filters uses the System.Text.RegularExpressions.Regex class to compare with a pattern.
C#
// The filter returns only files that contain the word 'Einstein' in their paths, not case sensitiveISearchDocumentFilterfilter=SearchDocumentFilter.CreateFilePathRegularExpression("Einstein",RegexOptions.IgnoreCase);
File extension filter
The next supported type of search document filters allows you to specify a list of valid file extensions for indexing.
C#
// This filter returns only FB2 and EPUB documentsISearchDocumentFilterfilter=SearchDocumentFilter.CreateFileExtension(".fb2",".epub");
Attribute filter
The next supported type of search document filters allows you to search only those documents with which the specified text attribute is associated. You can learn more about attributes on the Document attributes page.
C#
// This filter returns only documents that have attribute "main"ISearchDocumentFilterfilter=SearchDocumentFilter.CreateAttribute("main");
Combining filters
Search document filters can be combined using composite filters AND, OR, NOT. The following example shows how to combine search document filters.
C#
// Creating an AND composite filter that returns all FB2 and EPUB documents that have the word 'Einstein' in their full pathsISearchDocumentFilterfilter1=SearchDocumentFilter.CreateFilePathRegularExpression("Einstein",RegexOptions.IgnoreCase);ISearchDocumentFilterfilter2=SearchDocumentFilter.CreateFileExtension(".fb2",".epub");ISearchDocumentFilterandFilter=SearchDocumentFilter.CreateAnd(filter1,filter2);// Creating an OR composite filter that returns all DOC, DOCX, PDF and all documents that have the word Einstein in their full pathsISearchDocumentFilterfilter3=SearchDocumentFilter.CreateFilePathRegularExpression("Einstein",RegexOptions.IgnoreCase);ISearchDocumentFilterfilter4=SearchDocumentFilter.CreateFileExtension(".doc",".docx",".pdf");ISearchDocumentFilterorFilter=SearchDocumentFilter.CreateOr(filter3,filter4);// Creating a filter that returns all found documents except of TXT documentsISearchDocumentFilterfilter5=SearchDocumentFilter.CreateFileExtension(".txt");ISearchDocumentFilternotFilter=SearchDocumentFilter.CreateNot(filter5);
More resources
GitHub examples
You may easily run the code from documentation articles and see the features in action in our GitHub examples: