This page contains a description of all search options that can be specified in an instance of the SearchOptions class. If no search options are passed to the search method, the default values described below are used.
cancellation property
The cancellation property allows you to specify the object to cancel the search operation. The search can be canceled without delay by calling the cancel method or by calling the cancel_after method with the delay in milliseconds as an argument. The default value is None, which means that the search cannot be canceled. To cancel the continuation of a search by chunks, pass the cancellation object to the search_next method (see the Search by chunks page).
date_formats property
The date_formats property allows you to specify formats for the date range search feature. By default, the collection contains the formats ‘dd.MM.yyyy’, ‘MM/dd/yyyy’, and ‘yyyy-MM-dd’. For details, see the Date range search page.
fuzzy_search property
The fuzzy_search property returns a fuzzy search options object that allows you to enable fuzzy search and set its options. By default, the fuzzy search feature is disabled. For details, see the Fuzzy search page.
is_chunk_search property
The is_chunk_search property allows you to enable search by chunks. By default, the search by chunks feature is disabled. For details, see the Search by chunks page.
keyboard_layout_corrector property
The keyboard_layout_corrector property returns a keyboard layout corrector options object, which allows you to enable keyboard layout correction in search queries. By default, the keyboard layout correction feature is disabled. See the Keyboard layout correction page for details.
max_occurrence_count_per_term property
The max_occurrence_count_per_term property allows you to specify the maximum number of occurrences of each word found that will be returned as a search result. The default value is 2000000000.
max_total_occurrence_count property
The max_total_occurrence_count property allows you to specify the maximum number of occurrences in total for all found words, which will be returned as a search result. The default value is 2000000000.
retrieve_attributes property
The retrieve_attributes property allows you to retrieve the attributes associated with the found documents. If the property is set to True, the attributes of each found document are available in the FoundDocument.attributes property; otherwise, this property returns an empty list. The default value is False. For details on document attributes, see the Document attributes page.
importosfromgroupdocs.searchimportIndexfromgroupdocs.search.commonimportAttributeChangeBatchfromgroupdocs.search.optionsimportSearchOptionsquery="Einstein"# Creating an index in the specified folderindex=Index("./index")# Indexing documents from the specified folderindex.add("./documents")# Associating attributes with one of the indexed documents (see the Document attributes page)batch=AttributeChangeBatch()batch.add(os.path.abspath("./documents/einstein-biography.txt"),["main","biography"])index.change_attributes(batch)# Creating a search options instanceoptions=SearchOptions()options.retrieve_attributes=True# Enabling the retrieval of document attributes# Search in the indexresult=index.search(query,options)# Printing the attributes of the found documentsforiinrange(result.document_count):document=result.get_found_document(i)print(document.document_info.file_path+": "+", ".join(document.attributes))
The search_document_filter property allows you to specify the filter of documents returned as a search result. By default, all documents found will be returned as a search result. For details, see the Document filtering in search result page.
spelling_corrector property
The spelling_corrector property returns the spelling corrector options object, which allows you to enable spelling correction in search queries and specify spelling correction options. By default, spelling correction is disabled. See the Spell checking page for details.
use_case_sensitive_search property
The use_case_sensitive_search property allows you to perform case-sensitive search. Please note that case-sensitive search cannot be combined with fuzzy search, synonym search, homophone search, word forms search, spelling correction, and keyboard layout correction (see Incompatible options below). By default, case-insensitive search is performed. For details, see the Case sensitive search page.
use_homophone_search property
The use_homophone_search property allows you to enable the homophone search feature. By default, the homophone search feature is disabled. For details, see the Homophone search page.
use_synonym_search property
The use_synonym_search property allows you to enable the synonym search feature. By default, the synonym search feature is disabled. For details, see the Synonym search page.
The search options are checked when a search starts. In the following cases, the search method does not throw an exception: it returns an empty search result and raises the error_occurred event of the index with a message describing the problem:
Case-sensitive search is enabled together with fuzzy search, synonym search, homophone search, word forms search, spelling correction, or keyboard layout correction.
Synonym search is enabled, but the synonym dictionary of the index is empty.
Homophone search is enabled, but the homophone dictionary of the index is empty.
A search query in text form with a syntax error is handled in the same way: the search returns an empty result, and the error message is passed to the error_occurred event. Therefore, it is recommended to subscribe to the error_occurred event to receive such messages. For details on index events, see the Search index events page.
fromgroupdocs.searchimportIndexfromgroupdocs.search.optionsimportSearchOptionsquery="Einstein"# Creating an index in the specified folderindex=Index("./index")# Subscribing to the event of errorsindex.events.error_occurred+=lambdasender,args:print(args.message)# Indexing documents from the specified folderindex.add("./documents")# Creating a search options instance with incompatible optionsoptions=SearchOptions()options.use_case_sensitive_search=Trueoptions.fuzzy_search.enabled=True# The search returns an empty result, and the error_occurred event reports the reasonresult=index.search(query,options)print("Document count: "+str(result.document_count))