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()