Skip to content

Commit c4efe1c

Browse files
refactor: Semantic search enhancements (#4098)
closes #3906 1. We can perform search within a specific API path/object. 2. Removed `wildcard` parameter. 3. Improved semantic search accuracy using `lch_similarity` and `wup_similarity` scores. 4. Improved substring match handling. 5. Updated `test_get_wildcard_matches_for_word_from_names` and `test_wildcard_search`. --------- Co-authored-by: pyansys-ci-bot <[email protected]>
1 parent a1e39c4 commit c4efe1c

File tree

4 files changed

+432
-142
lines changed

4 files changed

+432
-142
lines changed
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Semantic search enhancements

doc/source/user_guide/usability.rst

Lines changed: 84 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -21,48 +21,100 @@ Examples
2121
>>>
2222
>>> # Semantic search
2323
>>> pyfluent.search("font")
24-
<solver_session>.results.graphics.contour["<name>"].color_map.font_automatic (Parameter)
25-
<solver_session>.results.graphics.contour["<name>"].color_map.font_name (Parameter)
26-
<solver_session>.results.graphics.contour["<name>"].color_map.font_size (Parameter)
27-
<solver_session>.results.graphics.lic["<name>"].color_map.font_automatic (Parameter)
28-
<solver_session>.results.graphics.lic["<name>"].color_map.font_name (Parameter)
29-
<solver_session>.results.graphics.lic["<name>"].color_map.font_size (Parameter)
30-
<solver_session>.results.graphics.olic["<name>"].color_map.font_automatic (Parameter)
31-
<solver_session>.results.graphics.olic["<name>"].color_map.font_name (Parameter)
32-
<solver_session>.results.graphics.olic["<name>"].color_map.font_size (Parameter)
24+
<meshing_session>.meshing_utilities.count_marked_faces (Query) (similarity: 98.31%)
25+
<meshing_session>.meshing_utilities.delete_marked_faces_in_zones (Command) (similarity: 98.31%)
26+
<meshing_session>.meshing_utilities.get_free_faces_count (Query) (similarity: 98.31%)
27+
<meshing_session>.meshing_utilities.get_multi_faces_count (Query) (similarity: 98.31%)
28+
<meshing_session>.meshing_utilities.get_zones_with_free_faces_for_given_face_zones (Query) (similarity: 98.31%)
29+
<meshing_session>.meshing_utilities.get_zones_with_marked_faces_for_given_face_zones (Query) (similarity: 98.31%)
30+
<meshing_session>.meshing_utilities.get_zones_with_multi_faces_for_given_face_zones (Query) (similarity: 98.31%)
31+
<meshing_session>.meshing_utilities.mark_bad_quality_faces (Query) (similarity: 98.31%)
32+
<meshing_session>.meshing_utilities.mark_duplicate_faces (Query) (similarity: 98.31%)
33+
<meshing_session>.meshing_utilities.mark_faces_by_quality (Query) (similarity: 98.31%)
34+
<meshing_session>.meshing_utilities.mark_faces_deviating_from_size_field (Query) (similarity: 98.31%)
35+
<meshing_session>.meshing_utilities.mark_faces_in_self_proximity (Query) (similarity: 98.31%)
36+
<meshing_session>.meshing_utilities.mark_faces_using_node_degree (Query) (similarity: 98.31%)
37+
<meshing_session>.meshing_utilities.mark_free_faces (Query) (similarity: 98.31%)
38+
<meshing_session>.meshing_utilities.mark_island_faces (Query) (similarity: 98.31%)
39+
<meshing_session>.meshing_utilities.mark_multi_faces (Query) (similarity: 98.31%)
40+
<meshing_session>.meshing_utilities.mark_self_intersecting_faces (Query) (similarity: 98.31%)
41+
<meshing_session>.meshing_utilities.mark_sliver_faces (Query) (similarity: 98.31%)
42+
<meshing_session>.meshing_utilities.refine_marked_faces_in_zones (Query) (similarity: 98.31%)
43+
<meshing_session>.preferences.Appearance.Charts.Font (Object) (similarity: 98.31%)
44+
<meshing_session>.preferences.Appearance.Charts.Font.Axes (Parameter) (similarity: 98.31%)
45+
<meshing_session>.preferences.Appearance.Charts.Font.AxesTitles (Parameter) (similarity: 98.31%)
46+
<meshing_session>.preferences.Appearance.Charts.Font.Legend (Parameter) (similarity: 98.31%)
47+
<meshing_session>.preferences.Appearance.Charts.Font.Title (Parameter) (similarity: 98.31%)
3348
...
34-
<meshing_session>.preferences.Appearance.Charts.Font (Object)
35-
<meshing_session>.preferences.Appearance.Charts.Font.Axes (Parameter)
36-
<meshing_session>.preferences.Appearance.Charts.Font.AxesTitles (Parameter)
37-
<meshing_session>.preferences.Appearance.Charts.Font.Legend (Parameter)
38-
<meshing_session>.preferences.Appearance.Charts.Font.Title (Parameter)
49+
<solver_session>.mesh.swap_mesh_faces (Command) (similarity: 98.31%)
50+
<solver_session>.preferences.Appearance.Charts.Font (Object) (similarity: 98.31%)
51+
<solver_session>.preferences.Appearance.Charts.Font.Axes (Parameter) (similarity: 98.31%)
52+
<solver_session>.preferences.Appearance.Charts.Font.AxesTitles (Parameter) (similarity: 98.31%)
53+
<solver_session>.preferences.Appearance.Charts.Font.Legend (Parameter) (similarity: 98.31%)
54+
<solver_session>.preferences.Appearance.Charts.Font.Title (Parameter) (similarity: 98.31%)
3955
...
4056
>>>
57+
>>> # Semantic search within a specific API object
58+
>>> pyfluent.search("font", api_path="<solver_session>.results.annotation")
59+
<solver_session>.results.annotation["<name>"].font_color (Parameter) (similarity: 98.31%)
60+
<solver_session>.results.annotation["<name>"].font_name (Parameter) (similarity: 98.31%)
61+
<solver_session>.results.annotation["<name>"].font_size (Parameter) (similarity: 98.31%)
62+
<solver_session>.results.annotation["<name>"].font_slant (Parameter) (similarity: 98.31%)
63+
<solver_session>.results.annotation["<name>"].font_weight (Parameter) (similarity: 98.31%)
64+
>>>
4165
>>> # Chinese semantic search
4266
>>> pyfluent.search("", language="cmn") # search 'read' in Chinese
43-
<solver_session>.setup.boundary_conditions.velocity_inlet["<name>"].multiphase.directional_spreading_method (Parameter)
44-
<solver_session>.setup.boundary_conditions.velocity_inlet["<name>"].phase["<name>"].multiphase.directional_spreading_method (Parameter)
45-
<solver_session>.setup.models.discrete_phase.injections["<name>"].initial_values.particle_size.rosin_rammler.spread (Parameter)
46-
<solver_session>.setup.physics.volumes.fluid["<name>"].boundaries.velocity_inlet["<name>"].phase["<name>"].multiphase.directional_spreading_method (Parameter)
47-
<solver_session>.setup.physics.volumes.solid["<name>"].boundaries.velocity_inlet["<name>"].phase["<name>"].multiphase.directional_spreading_method (Parameter)
48-
<solver_session>.tui.define.models.dpm.numerics.high_resolution_tracking.set_film_spreading_parameter (Command)
49-
<meshing_session>.MeshingUtilities.set_number_of_parallel_compute_threads (Command)
50-
<solver_session>.file.convert_hanging_nodes_during_read (Parameter)
51-
<solver_session>.file.export.settings.cgns_polyhedral_cpu_threads (Parameter)
52-
<solver_session>.file.import_.read (Command)
53-
<solver_session>.file.read (Command)
54-
<solver_session>.file.read_case (Command)
67+
<solver_session>.file.convert_hanging_nodes_during_read (Parameter) (similarity: 100.0%)
68+
<solver_session>.file.import_.read (Command) (similarity: 100.0%)
69+
<solver_session>.file.interpolate.read_data (Command) (similarity: 100.0%)
70+
<solver_session>.file.read (Command) (similarity: 100.0%)
71+
<solver_session>.file.read_case (Command) (similarity: 100.0%)
72+
<solver_session>.file.read_case_data (Command) (similarity: 100.0%)
73+
<solver_session>.file.read_case_lightweight (Command) (similarity: 100.0%)
74+
<solver_session>.file.read_data (Command) (similarity: 100.0%)
75+
<solver_session>.file.read_field_functions (Command) (similarity: 100.0%)
76+
<solver_session>.file.read_injections (Command) (similarity: 100.0%)
77+
<solver_session>.file.read_isat_table (Command) (similarity: 100.0%)
78+
<solver_session>.file.read_journal (Command) (similarity: 100.0%)
79+
<solver_session>.file.read_macros (Command) (similarity: 100.0%)
80+
<solver_session>.file.read_mesh (Command) (similarity: 100.0%)
81+
<solver_session>.file.read_pdf (Command) (similarity: 100.0%)
82+
<solver_session>.file.read_profile (Command) (similarity: 100.0%)
83+
<solver_session>.file.read_settings (Command) (similarity: 100.0%)
84+
<solver_session>.file.read_surface_mesh (Command) (similarity: 100.0%)
85+
<solver_session>.file.table_file_manager.read_table_file (Command) (similarity: 100.0%)
5586
...
5687
>>>
88+
>>> # Chinese semantic search within a specific API object
89+
>>> pyfluent.search("", language="cmn", api_path="results") # search 'read' in Chinese
90+
<solver_session>.results.animations.playback.read_animation_file (Command) (similarity: 100.0%)
91+
<solver_session>.results.animations.scene_animation.read_animation (Command) (similarity: 100.0%)
92+
<solver_session>.results.graphics.views.display_states["<name>"].read (Command) (similarity: 100.0%)
93+
<solver_session>.results.graphics.views.read_views (Command) (similarity: 100.0%)
94+
<solver_session>.results.plot.xy_plot["<name>"].read_from_file (Command) (similarity: 100.0%)
95+
<solver_session>.results.report.discrete_phase.histogram.read_sample_file (Command) (similarity: 100.0%)
96+
<solver_session>.results.report.simulation_reports.read_simulation_report_template_file (Command) (similarity: 100.0%)
97+
<solver_session>.tui.results.animations.playback.read_animation_file (Command) (similarity: 100.0%)
98+
<solver_session>.tui.results.animations.scene_animation.read_animation (Command) (similarity: 100.0%)
99+
<solver_session>.tui.results.graphics.views.display_states.read (Command) (similarity: 100.0%)
100+
<solver_session>.tui.results.graphics.views.read_views (Command) (similarity: 100.0%)
101+
<solver_session>.tui.results.report.discrete_phase.histogram.read_sample_file (Command) (similarity: 100.0%)
102+
<solver_session>.tui.results.report.simulation_reports.read_simulation_report_template_file (Command) (similarity: 100.0%)
103+
>>>
57104
>>> # Whole word search
58105
>>> pyfluent.search("ApplicationFontSize", match_whole_word=True)
59106
<meshing_session>.preferences.Appearance.ApplicationFontSize (Parameter)
60107
<solver_session>.preferences.Appearance.ApplicationFontSize (Parameter)
61108
<meshing_session>.tui.preferences.appearance.application_font_size (Command)
62109
<solver_session>.tui.preferences.appearance.application_font_size (Command)
63110
>>>
111+
>>> # Whole word search within a specific API object
112+
>>> pyfluent.search("ApplicationFontSize", match_whole_word=True, api_path="preferences")
113+
<meshing_session>.preferences.Appearance.ApplicationFontSize (Parameter)
114+
<solver_session>.preferences.Appearance.ApplicationFontSize (Parameter)
115+
>>>
64116
>>> # Wildcard pattern search
65-
>>> pyfluent.search("local*", wildcard=True)
117+
>>> pyfluent.search("local*")
66118
<solver_session>.solution.controls.advanced.expert.pseudo_time_method_usage.local_dt["<name>"] (Object)
67119
<solver_session>.solution.controls.advanced.expert.pseudo_time_method_usage.local_dt["<name>"].create (Command)
68120
<solver_session>.solution.controls.advanced.expert.pseudo_time_method_usage.local_dt["<name>"].delete (Command)
@@ -75,6 +127,11 @@ Examples
75127
<solver_session>.solution.controls.advanced.expert.pseudo_time_method_usage.local_dt["<name>"].rename (Command)
76128
...
77129
>>>
130+
>> # Wildcard pattern search within a specific API object
131+
>>> pyfluent.search("local*", api_path="mesh_interfaces")
132+
<solver_session>.setup.mesh_interfaces.interface["<name>"].local_absolute_mapped_tolerance (Parameter)
133+
<solver_session>.setup.mesh_interfaces.interface["<name>"].local_relative_mapped_tolerance (Parameter)
134+
>>>
78135
>>> # Misspelled search
79136
>>> pyfluent.search("cfb_lma")
80137
<solver_session>.setup.models.viscous.geko_options.cbf_lam (Parameter)

0 commit comments

Comments
 (0)