Document Searching (Python)

Document Searching (Python)
 1ot = impact.gui.output_toolbox
 2db = impact.active_database
 3docSettings = db.settings.document_settings
 4
 5def SearchAndDescribeResults(search):
 6    docs = search.execute()
 7
 8    if not docs.isNone():
 9
10        ot.add("Search executed successfully")
11
12        ot.add("Document Count: " + str(docs.count))
13        ot.add("Using Paging: " + str(docs.using_paging))
14
15        if (docs.using_paging):
16
17            ot.add("Page Number: " + str(docs.page_number))
18            ot.add("Page Count: " + str(docs.page_count))
19            ot.add("Total Document Count: " + str(docs.total_count))
20
21    else:
22
23        ot.add("Search failed")
24
25if not docSettings.supports_searching:
26
27    ot.add("Document searching is not supported")
28
29else:
30
31    ot.add("Document searching is supported")
32
33    ot.add("=== Searching for All Documents ===")
34    search = db.document_search
35
36    SearchAndDescribeResults(search)
37
38    ot.add("=== Searching by Name ===")
39    search = db.document_search
40    nameColumn = docSettings.types.default_document_type.columns.known_item(ipDocumentKnownColumn.dkcName)
41    nameCriterion = None
42    try:
43        nameCriterion = search.add(nameColumn)
44    except Exception as exc:
45        pass
46    impact.gui.output_toolbox.add(f"Failed to create object via search.add(): {exc}")
47
48    nameCriterion.criterion_operator = ipDocumentCriterionOperator.dcoLike
49    nameCriterion.string_search = ipDocumentStringSearch.dssContains
50    nameCriterion.values = "Seating"
51
52    SearchAndDescribeResults(search)
53
54ot.clear()