Numeric range search or numerical search allows you to search documents for integer numbers in the range from 0 to 9223372036854775807 (Int64.MaxValue). Please note that a number in the text must not be separated by spaces; otherwise, it is treated as several numbers. A search query of this type is specified as follows:
number ~~ number
The example below demonstrates the numeric range search in text and object forms.
importosfromgroupdocs.searchimportIndex,SearchQuery# Creating an index in the specified folderindex=Index("./index")# Indexing documents from the specified folderindex.add("./documents")# Search with text queryresult1=index.search("500 ~~ 600")# Search with object queryquery2=SearchQuery.create_numeric_range_query(500,600)result2=index.search(query2)# Printing the numbers found in each documentprint("Documents found by the text query:",result1.document_count)print("Documents found by the object query:",result2.document_count)fordocumentinresult2:print(" ",os.path.basename(document.document_info.file_path),document.terms)
Since version 26.10, numeric range search uses as many threads as there are processor cores by default. Therefore, the order of the found numbers in the search result may differ from run to run. To get the same order every time, set the search_threads index setting to NumberOfThreads.ONE.
More resources
GitHub examples
You may easily run the code from documentation articles and see the features in action in our GitHub examples: