From f8acd71e257f741ef870033a54575c9ae98cb674 Mon Sep 17 00:00:00 2001 From: georgweiss Date: Wed, 25 Oct 2023 19:25:02 +0200 Subject: [PATCH 1/6] Search query to find PV names in save&restore configs --- .../service/saveandrestore/search/SearchUtil.java | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/services/save-and-restore/src/main/java/org/phoebus/service/saveandrestore/search/SearchUtil.java b/services/save-and-restore/src/main/java/org/phoebus/service/saveandrestore/search/SearchUtil.java index 3434790e42..be069af340 100644 --- a/services/save-and-restore/src/main/java/org/phoebus/service/saveandrestore/search/SearchUtil.java +++ b/services/save-and-restore/src/main/java/org/phoebus/service/saveandrestore/search/SearchUtil.java @@ -47,6 +47,8 @@ public class SearchUtil { @SuppressWarnings("unused") @Value("${elasticsearch.tree_node.index:saveandrestore_tree}") public String ES_TREE_INDEX; + @Value("${elasticsearch.configuration_node.index:saveandrestore_configuration}") + public String ES_CONFIGURATION_INDEX; @SuppressWarnings("unused") @Value("${elasticsearch.result.size.search.default:100}") private int defaultSearchSize; @@ -287,4 +289,16 @@ public SearchRequest buildSearchRequest(MultiValueMap searchPara .size(Math.min(_searchResultSize, maxSearchSize)) .from(_from)); } + + private SearchRequest buildSearchRequestForPV(MultiValueMap searchParameters) { + NestedQuery innerNestedQuery; + WildcardQuery matchQuery = WildcardQuery.of(m -> m.field("pvList.pvName").value(searchParameters.get("pv").get(0))); + innerNestedQuery = NestedQuery.of(n1 -> n1.path("pvList").query(matchQuery._toQuery())); + Builder boolQueryBuilder = new Builder(); + boolQueryBuilder.must(innerNestedQuery._toQuery()); + return SearchRequest.of(s -> s.index(ES_CONFIGURATION_INDEX) + .query(boolQueryBuilder.build()._toQuery()) + .timeout("60s") + .size(Math.min(999, maxSearchSize))); + } } From 9b97364ae9b87325a808647f1ebddda47417f7dd Mon Sep 17 00:00:00 2001 From: georgweiss Date: Mon, 11 Dec 2023 16:16:01 +0100 Subject: [PATCH 2/6] Add search support for PV names, service side --- .../search/SearchAndFilterViewController.java | 10 +-- .../ConfigurationDataRepository.java | 40 ++++++++---- .../impl/elasticsearch/ElasticsearchDAO.java | 17 ++++- .../saveandrestore/search/SearchUtil.java | 59 ++++++++++------- .../persistence/dao/impl/DAOTestIT.java | 63 ++++++++++++++++++- .../web/controllers/SearchControllerTest.java | 27 +++++++- 6 files changed, 176 insertions(+), 40 deletions(-) diff --git a/app/save-and-restore/app/src/main/java/org/phoebus/applications/saveandrestore/ui/search/SearchAndFilterViewController.java b/app/save-and-restore/app/src/main/java/org/phoebus/applications/saveandrestore/ui/search/SearchAndFilterViewController.java index 6460fd0982..d7e8ade13f 100644 --- a/app/save-and-restore/app/src/main/java/org/phoebus/applications/saveandrestore/ui/search/SearchAndFilterViewController.java +++ b/app/save-and-restore/app/src/main/java/org/phoebus/applications/saveandrestore/ui/search/SearchAndFilterViewController.java @@ -458,7 +458,7 @@ protected void updateItem(Node node, boolean empty) { // This is to accept numerical input only, and at most 3 digits (maximizing search to 999 hits). pageSizeTextField.textProperty().addListener((observable, oldValue, newValue) -> { if (DIGIT_PATTERN.matcher(newValue).matches()) { - if ("".equals(newValue)) { + if (newValue.isEmpty()) { pageSizeProperty.set(Preferences.search_result_page_size); } else if (newValue.length() > 3) { pageSizeTextField.setText(oldValue); @@ -487,15 +487,14 @@ protected void updateItem(Node node, boolean empty) { resultTableView.getSelectionModel().setSelectionMode(SelectionMode.MULTIPLE); resultTableView.setOnDragDetected(e -> { List selectedNodes = resultTableView.getSelectionModel().getSelectedItems(); - if(selectedNodes.stream().filter(n -> + if(selectedNodes.stream().anyMatch(n -> !n.getNodeType().equals(NodeType.SNAPSHOT) && - !n.getNodeType().equals(NodeType.COMPOSITE_SNAPSHOT)).findFirst().isPresent()) + !n.getNodeType().equals(NodeType.COMPOSITE_SNAPSHOT))) { return; } final ClipboardContent content = new ClipboardContent(); - final List nodes = new ArrayList<>(); - resultTableView.getSelectionModel().getSelectedItems().forEach(i -> nodes.add(i)); + final List nodes = new ArrayList<>(resultTableView.getSelectionModel().getSelectedItems()); content.put(SaveAndRestoreApplication.NODE_SELECTION_FORMAT, nodes); final Dragboard db = resultTableView.startDragAndDrop(TransferMode.LINK); db.setContent(content); @@ -577,6 +576,7 @@ public void search() { Map params = SearchQueryUtil.parseHumanReadableQueryString(query.get()); + params.put("pvs", "georgweiss:ao7,ScNt:test2"); params.put(Keys.FROM.getName(), Integer.toString(pagination.getCurrentPageIndex() * pageSizeProperty.get())); params.put(Keys.SIZE.getName(), Integer.toString(pageSizeProperty.get())); diff --git a/services/save-and-restore/src/main/java/org/phoebus/service/saveandrestore/persistence/dao/impl/elasticsearch/ConfigurationDataRepository.java b/services/save-and-restore/src/main/java/org/phoebus/service/saveandrestore/persistence/dao/impl/elasticsearch/ConfigurationDataRepository.java index ba6c0ea413..54ead5fa24 100644 --- a/services/save-and-restore/src/main/java/org/phoebus/service/saveandrestore/persistence/dao/impl/elasticsearch/ConfigurationDataRepository.java +++ b/services/save-and-restore/src/main/java/org/phoebus/service/saveandrestore/persistence/dao/impl/elasticsearch/ConfigurationDataRepository.java @@ -22,31 +22,29 @@ import co.elastic.clients.elasticsearch._types.Refresh; import co.elastic.clients.elasticsearch._types.Result; import co.elastic.clients.elasticsearch._types.query_dsl.MatchAllQuery; -import co.elastic.clients.elasticsearch.core.CountRequest; -import co.elastic.clients.elasticsearch.core.CountResponse; -import co.elastic.clients.elasticsearch.core.DeleteByQueryRequest; -import co.elastic.clients.elasticsearch.core.DeleteByQueryResponse; -import co.elastic.clients.elasticsearch.core.DeleteRequest; -import co.elastic.clients.elasticsearch.core.DeleteResponse; -import co.elastic.clients.elasticsearch.core.ExistsRequest; -import co.elastic.clients.elasticsearch.core.GetRequest; -import co.elastic.clients.elasticsearch.core.GetResponse; -import co.elastic.clients.elasticsearch.core.IndexRequest; -import co.elastic.clients.elasticsearch.core.IndexResponse; +import co.elastic.clients.elasticsearch.core.*; import co.elastic.clients.transport.endpoints.BooleanResponse; import org.phoebus.applications.saveandrestore.model.ConfigurationData; +import org.phoebus.applications.saveandrestore.model.search.SearchResult; +import org.phoebus.service.saveandrestore.model.ESTreeNode; +import org.phoebus.service.saveandrestore.search.SearchUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.beans.factory.annotation.Value; import org.springframework.data.repository.CrudRepository; import org.springframework.http.HttpStatus; import org.springframework.stereotype.Repository; +import org.springframework.util.MultiValueMap; import org.springframework.web.server.ResponseStatusException; import java.io.IOException; +import java.util.Collections; +import java.util.List; +import java.util.Map; import java.util.Optional; import java.util.logging.Level; import java.util.logging.Logger; +import java.util.stream.Collectors; @Repository public class ConfigurationDataRepository implements CrudRepository { @@ -58,6 +56,9 @@ public class ConfigurationDataRepository implements CrudRepository searchOnPvName(MultiValueMap searchParameters){ + Optional>> optional = + searchParameters.entrySet().stream().filter(e -> e.getKey().strip().toLowerCase().equals("pvs")).findFirst(); + if(optional.isEmpty()){ + return Collections.emptyList(); + } + SearchRequest searchRequest = searchUtil.buildSearchRequestForPvs(optional.get().getValue()); + try { + SearchResponse searchResponse = client.search(searchRequest, ConfigurationData.class); + List configurationDataList = searchResponse.hits().hits().stream().map(h -> h.source()).collect(Collectors.toList()); + return configurationDataList; + } catch (IOException e) { + throw new RuntimeException(e); + } + + } } diff --git a/services/save-and-restore/src/main/java/org/phoebus/service/saveandrestore/persistence/dao/impl/elasticsearch/ElasticsearchDAO.java b/services/save-and-restore/src/main/java/org/phoebus/service/saveandrestore/persistence/dao/impl/elasticsearch/ElasticsearchDAO.java index 78bba6ae03..e5602eb83a 100644 --- a/services/save-and-restore/src/main/java/org/phoebus/service/saveandrestore/persistence/dao/impl/elasticsearch/ElasticsearchDAO.java +++ b/services/save-and-restore/src/main/java/org/phoebus/service/saveandrestore/persistence/dao/impl/elasticsearch/ElasticsearchDAO.java @@ -1040,7 +1040,22 @@ private boolean checkCompositeSnapshotReferencedNodeType(String nodeId) { @Override public SearchResult search(MultiValueMap searchParameters) { - return elasticsearchTreeRepository.search(searchParameters); + return searchInternal(searchParameters); + } + + private SearchResult searchInternal(MultiValueMap searchParameters){ + // Did client specify search on pv name(s)? + if(searchParameters.keySet().stream().anyMatch(k -> k.strip().toLowerCase().contains("pvs"))){ + List configurationDataList = configurationDataRepository.searchOnPvName(searchParameters); + List uniqueIds = configurationDataList.stream().map(ConfigurationData::getUniqueId).collect(Collectors.toList()); + MultiValueMap augmented = new LinkedMultiValueMap<>(); + augmented.putAll(searchParameters); + augmented.put("uniqueid", uniqueIds); + return elasticsearchTreeRepository.search(augmented); + } + else{ + return elasticsearchTreeRepository.search(searchParameters); + } } /** diff --git a/services/save-and-restore/src/main/java/org/phoebus/service/saveandrestore/search/SearchUtil.java b/services/save-and-restore/src/main/java/org/phoebus/service/saveandrestore/search/SearchUtil.java index be069af340..171b6c0e52 100644 --- a/services/save-and-restore/src/main/java/org/phoebus/service/saveandrestore/search/SearchUtil.java +++ b/services/save-and-restore/src/main/java/org/phoebus/service/saveandrestore/search/SearchUtil.java @@ -3,16 +3,8 @@ import co.elastic.clients.elasticsearch._types.FieldSort; import co.elastic.clients.elasticsearch._types.SortOptions; import co.elastic.clients.elasticsearch._types.SortOrder; -import co.elastic.clients.elasticsearch._types.query_dsl.BoolQuery; +import co.elastic.clients.elasticsearch._types.query_dsl.*; import co.elastic.clients.elasticsearch._types.query_dsl.BoolQuery.Builder; -import co.elastic.clients.elasticsearch._types.query_dsl.ChildScoreMode; -import co.elastic.clients.elasticsearch._types.query_dsl.DisMaxQuery; -import co.elastic.clients.elasticsearch._types.query_dsl.FuzzyQuery; -import co.elastic.clients.elasticsearch._types.query_dsl.MatchQuery; -import co.elastic.clients.elasticsearch._types.query_dsl.NestedQuery; -import co.elastic.clients.elasticsearch._types.query_dsl.Query; -import co.elastic.clients.elasticsearch._types.query_dsl.RangeQuery; -import co.elastic.clients.elasticsearch._types.query_dsl.WildcardQuery; import co.elastic.clients.elasticsearch.core.SearchRequest; import org.phoebus.applications.saveandrestore.model.Tag; import org.springframework.beans.factory.annotation.Value; @@ -24,13 +16,8 @@ import java.time.ZoneId; import java.time.ZonedDateTime; import java.time.format.DateTimeFormatter; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collections; -import java.util.Comparator; -import java.util.List; +import java.util.*; import java.util.Map.Entry; -import java.util.Optional; /** * A utility class for creating a search query for log entries based on time, @@ -66,6 +53,7 @@ public SearchRequest buildSearchRequest(MultiValueMap searchPara List descriptionTerms = new ArrayList<>(); List nodeNameTerms = new ArrayList<>(); List nodeTypeTerms = new ArrayList<>(); + List uniqueIdTerms = new ArrayList<>(); boolean temporalSearch = false; ZonedDateTime start = ZonedDateTime.ofInstant(Instant.EPOCH, ZoneId.systemDefault()); ZonedDateTime end = ZonedDateTime.now(); @@ -74,6 +62,13 @@ public SearchRequest buildSearchRequest(MultiValueMap searchPara for (Entry> parameter : searchParameters.entrySet()) { switch (parameter.getKey().strip().toLowerCase()) { + case "uniqueid": + for (String value : parameter.getValue()) { + for (String pattern : value.split("[|,;]")) { + uniqueIdTerms.add(pattern.trim()); + } + } + break; // Search for node name. List of names cannot be split on space char as it is allowed in a node name. case "name": for (String value : parameter.getValue()) { @@ -234,6 +229,11 @@ public SearchRequest buildSearchRequest(MultiValueMap searchPara boolQueryBuilder.must(descQuery.build()._toQuery()); } + // Add uniqueId query + if(!uniqueIdTerms.isEmpty()){ + boolQueryBuilder.must(IdsQuery.of(id -> id.values(uniqueIdTerms))._toQuery()); + } + // Add the name query if (!nodeNameTerms.isEmpty()) { DisMaxQuery.Builder nodeNameQuery = new DisMaxQuery.Builder(); @@ -290,15 +290,32 @@ public SearchRequest buildSearchRequest(MultiValueMap searchPara .from(_from)); } - private SearchRequest buildSearchRequestForPV(MultiValueMap searchParameters) { - NestedQuery innerNestedQuery; - WildcardQuery matchQuery = WildcardQuery.of(m -> m.field("pvList.pvName").value(searchParameters.get("pv").get(0))); - innerNestedQuery = NestedQuery.of(n1 -> n1.path("pvList").query(matchQuery._toQuery())); + /** + * Builds a query on the configuration index to find {@link org.phoebus.applications.saveandrestore.model.ConfigurationData} + * documents containing any of the PV names passed to this method. + * @param pvValues List of PV names. Query will user or-strategy. + * @return A {@link SearchRequest} object, no limit on result size except maximum Elastic limit. + */ + public SearchRequest buildSearchRequestForPvs(List pvValues) { + int searchResultSize = defaultSearchSize; Builder boolQueryBuilder = new Builder(); - boolQueryBuilder.must(innerNestedQuery._toQuery()); + DisMaxQuery.Builder pvQuery = new DisMaxQuery.Builder(); + List pvQueries = new ArrayList<>(); + for (String value : pvValues) { + for (String pattern : value.split("[|,;]")) { + pvQueries.add(WildcardQuery.of(w -> w.field("pvList.pvName") + .caseInsensitive(true) + .value(pattern.trim()))._toQuery()); + } + } + Query pvsQuery = pvQuery.queries(pvQueries).build()._toQuery(); + NestedQuery nestedPvsQuery = NestedQuery.of(n -> n.path("pvList").query(pvsQuery).scoreMode(ChildScoreMode.None)); + boolQueryBuilder.must(nestedPvsQuery._toQuery()); + return SearchRequest.of(s -> s.index(ES_CONFIGURATION_INDEX) .query(boolQueryBuilder.build()._toQuery()) .timeout("60s") - .size(Math.min(999, maxSearchSize))); + .size(Math.min(searchResultSize, maxSearchSize)) + .from(0)); } } diff --git a/services/save-and-restore/src/test/java/org/phoebus/service/saveandrestore/persistence/dao/impl/DAOTestIT.java b/services/save-and-restore/src/test/java/org/phoebus/service/saveandrestore/persistence/dao/impl/DAOTestIT.java index 2add9a17ee..9f551983e9 100644 --- a/services/save-and-restore/src/test/java/org/phoebus/service/saveandrestore/persistence/dao/impl/DAOTestIT.java +++ b/services/save-and-restore/src/test/java/org/phoebus/service/saveandrestore/persistence/dao/impl/DAOTestIT.java @@ -47,6 +47,7 @@ import org.phoebus.applications.saveandrestore.model.Tag; import org.phoebus.applications.saveandrestore.model.TagData; import org.phoebus.applications.saveandrestore.model.search.Filter; +import org.phoebus.applications.saveandrestore.model.search.SearchResult; import org.phoebus.service.saveandrestore.NodeNotFoundException; import org.phoebus.service.saveandrestore.persistence.config.ElasticConfig; import org.phoebus.service.saveandrestore.persistence.dao.impl.elasticsearch.ConfigurationDataRepository; @@ -57,7 +58,11 @@ import org.springframework.context.annotation.Profile; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.TestPropertySource; +import org.springframework.util.LinkedMultiValueMap; +import org.springframework.util.MultiValueMap; +import javax.ws.rs.core.MultivaluedHashMap; +import javax.ws.rs.core.MultivaluedMap; import java.io.IOException; import java.time.Instant; import java.util.ArrayList; @@ -1844,12 +1849,13 @@ public void testGetAllNodes() { } /** - * Deletes all child nodes of the root node, i.e. all data except root node. + * Deletes all objects in all indices. */ private void clearAllData() { List childNodes = nodeDAO.getChildNodes(Node.ROOT_FOLDER_UNIQUE_ID); childNodes.forEach(node -> nodeDAO.deleteNode(node.getUniqueId())); nodeDAO.deleteAllFilters(); + } @@ -2223,4 +2229,59 @@ public void testFilters() { clearAllData(); } + + @Test + public void testSearchForPvs() throws Exception{ + Node rootNode = nodeDAO.getRootNode(); + Node folderNode = + Node.builder().name("folder").build(); + folderNode = nodeDAO.createNode(rootNode.getUniqueId(), folderNode); + + Node config = Node.builder().nodeType(NodeType.CONFIGURATION).name("Myconfig1").build(); + Configuration configuration = new Configuration(); + configuration.setConfigurationNode(config); + ConfigurationData configurationData = new ConfigurationData(); + configurationData.setPvList(Arrays.asList(ConfigPv.builder().pvName("pv1").build(), + ConfigPv.builder().pvName("pv2").build())); + configuration.setConfigurationData(configurationData); + + configuration = nodeDAO.createConfiguration(folderNode.getUniqueId(), configuration); + + Node config2 = Node.builder().nodeType(NodeType.CONFIGURATION).name("Myconfig2").build(); + Configuration configuration2 = new Configuration(); + configuration2.setConfigurationNode(config2); + ConfigurationData configurationData2 = new ConfigurationData(); + configurationData2.setPvList(Arrays.asList(ConfigPv.builder().pvName("pv12").build(), + ConfigPv.builder().pvName("pv22").build())); + configuration2.setConfigurationData(configurationData2); + + configuration2 = nodeDAO.createConfiguration(folderNode.getUniqueId(), configuration2); + + MultiValueMap searchParameters = new LinkedMultiValueMap<>(); + + searchParameters.put("pvs", List.of("pv1", "pv22", "pv12")); + + SearchResult searchResult = nodeDAO.search(searchParameters); + assertEquals(2, searchResult.getHitCount()); + assertEquals(configuration.getConfigurationNode().getUniqueId(), searchResult.getNodes().get(0).getUniqueId()); + assertEquals(configuration2.getConfigurationNode().getUniqueId(), searchResult.getNodes().get(1).getUniqueId()); + + searchParameters.put("name", List.of("Myconfig2")); + searchResult = nodeDAO.search(searchParameters); + assertEquals(1, searchResult.getHitCount()); + + searchParameters.clear(); + + searchParameters.put("pvs", List.of("pv1", "pv2")); + searchResult = nodeDAO.search(searchParameters); + assertEquals(1, searchResult.getHitCount()); + + searchParameters.clear(); + searchResult = nodeDAO.search(searchParameters); + // No pvs specified -> find all nodes. + assertEquals(4, searchResult.getHitCount()); + + clearAllData(); + + } } diff --git a/services/save-and-restore/src/test/java/org/phoebus/service/saveandrestore/web/controllers/SearchControllerTest.java b/services/save-and-restore/src/test/java/org/phoebus/service/saveandrestore/web/controllers/SearchControllerTest.java index a65d0ea781..df3f124379 100644 --- a/services/save-and-restore/src/test/java/org/phoebus/service/saveandrestore/web/controllers/SearchControllerTest.java +++ b/services/save-and-restore/src/test/java/org/phoebus/service/saveandrestore/web/controllers/SearchControllerTest.java @@ -19,15 +19,19 @@ package org.phoebus.service.saveandrestore.web.controllers; +import co.elastic.clients.elasticsearch.core.SearchRequest; import com.fasterxml.jackson.databind.ObjectMapper; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; import org.mockito.Mockito; import org.phoebus.applications.saveandrestore.model.Node; +import org.phoebus.applications.saveandrestore.model.NodeType; import org.phoebus.applications.saveandrestore.model.search.SearchResult; import org.phoebus.service.saveandrestore.persistence.dao.NodeDAO; +import org.phoebus.service.saveandrestore.search.SearchUtil; import org.phoebus.service.saveandrestore.web.config.ControllersTestConfig; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit.jupiter.SpringExtension; @@ -37,6 +41,7 @@ import org.springframework.util.LinkedMultiValueMap; import org.springframework.util.MultiValueMap; +import javax.ws.rs.core.MultivaluedHashMap; import javax.ws.rs.core.MultivaluedMap; import java.util.List; @@ -61,13 +66,18 @@ public class SearchControllerTest { @Autowired private ObjectMapper objectMapper; + @Autowired + private SearchUtil searchUtil; + + @Value("${elasticsearch.configuration_node.index:saveandrestore_configuration}") + public String ES_CONFIGURATION_INDEX; + @Test public void testSearch() throws Exception{ SearchResult searchResult = new SearchResult(); searchResult.setHitCount(1); searchResult.setNodes(List.of(Node.builder().name("node").build())); - when(nodeDAO.search(Mockito.any())).thenReturn(searchResult); MockHttpServletRequestBuilder request = get("/search").contentType(JSON).params(new LinkedMultiValueMap<>()); @@ -80,4 +90,19 @@ public void testSearch() throws Exception{ SearchResult searchResult1 = objectMapper.readValue(s, SearchResult.class); assertEquals(1, searchResult1.getHitCount()); } + + @Test + public void testSearchForPVs() { + MultivaluedMap> searchParams = new MultivaluedHashMap<>(); + searchParams.put("type", List.of(List.of(NodeType.CONFIGURATION.toString()))); + searchParams.put("pvs", List.of(List.of("abc"))); + + SearchRequest searchRequest = searchUtil.buildSearchRequestForPvs(List.of("abc")); + assertEquals(ES_CONFIGURATION_INDEX, searchRequest.index().get(0)); + assertEquals("pvList", searchRequest.query().bool().must().get(0).nested().path()); + assertEquals("pvList.pvName", searchRequest.query().bool().must().get(0).nested().query().disMax() + .queries().get(0).wildcard().field()); + assertEquals("abc", searchRequest.query().bool().must().get(0).nested().query().disMax() + .queries().get(0).wildcard().value()); + } } From 348ad1837cdb91bb4628781b9af6576c0f7cbcb3 Mon Sep 17 00:00:00 2001 From: georgweiss Date: Mon, 11 Dec 2023 20:24:41 +0100 Subject: [PATCH 3/6] UI for PV search in save&restore --- .../applications/saveandrestore/Messages.java | 4 +- .../search/SearchAndFilterViewController.java | 96 +--- .../ui/search/SearchWindowController.java | 34 +- .../saveandrestore/messages.properties | 2 +- .../ui/search/SearchAndFilterView.fxml | 459 ++++++++++-------- .../model/search/SearchQueryUtil.java | 4 +- 6 files changed, 285 insertions(+), 314 deletions(-) diff --git a/app/save-and-restore/app/src/main/java/org/phoebus/applications/saveandrestore/Messages.java b/app/save-and-restore/app/src/main/java/org/phoebus/applications/saveandrestore/Messages.java index 00bd9b1c52..cdacbb5e6b 100644 --- a/app/save-and-restore/app/src/main/java/org/phoebus/applications/saveandrestore/Messages.java +++ b/app/save-and-restore/app/src/main/java/org/phoebus/applications/saveandrestore/Messages.java @@ -19,6 +19,7 @@ import org.phoebus.framework.nls.NLS; +@SuppressWarnings("unused") public class Messages { public static String alertContinue; @@ -126,9 +127,6 @@ public class Messages { public static String searchEntryToolTip; public static String searchErrorBody; public static String searchFailed; - public static String searchNoResultsTitle; - public static String searchNoResult; - public static String setpoint; public static String setpointPVWhen; public static String severity; diff --git a/app/save-and-restore/app/src/main/java/org/phoebus/applications/saveandrestore/ui/search/SearchAndFilterViewController.java b/app/save-and-restore/app/src/main/java/org/phoebus/applications/saveandrestore/ui/search/SearchAndFilterViewController.java index d7e8ade13f..d5bd5b6006 100644 --- a/app/save-and-restore/app/src/main/java/org/phoebus/applications/saveandrestore/ui/search/SearchAndFilterViewController.java +++ b/app/save-and-restore/app/src/main/java/org/phoebus/applications/saveandrestore/ui/search/SearchAndFilterViewController.java @@ -21,35 +21,14 @@ import javafx.application.Platform; import javafx.beans.binding.Bindings; -import javafx.beans.property.Property; -import javafx.beans.property.ReadOnlyObjectWrapper; -import javafx.beans.property.ReadOnlyStringWrapper; -import javafx.beans.property.SimpleBooleanProperty; -import javafx.beans.property.SimpleIntegerProperty; -import javafx.beans.property.SimpleObjectProperty; -import javafx.beans.property.SimpleStringProperty; +import javafx.beans.property.*; import javafx.collections.FXCollections; import javafx.collections.ObservableList; import javafx.fxml.FXML; import javafx.fxml.Initializable; -import javafx.scene.control.Alert; +import javafx.scene.control.*; import javafx.scene.control.Alert.AlertType; -import javafx.scene.control.Button; import javafx.scene.control.ButtonBar.ButtonData; -import javafx.scene.control.ButtonType; -import javafx.scene.control.CheckBox; -import javafx.scene.control.ContextMenu; -import javafx.scene.control.Label; -import javafx.scene.control.Menu; -import javafx.scene.control.MenuItem; -import javafx.scene.control.Pagination; -import javafx.scene.control.SelectionMode; -import javafx.scene.control.TableCell; -import javafx.scene.control.TableColumn; -import javafx.scene.control.TableRow; -import javafx.scene.control.TableView; -import javafx.scene.control.TextField; -import javafx.scene.control.Tooltip; import javafx.scene.image.ImageView; import javafx.scene.input.ClipboardContent; import javafx.scene.input.Dragboard; @@ -66,15 +45,11 @@ import org.phoebus.applications.saveandrestore.model.search.SearchQueryUtil; import org.phoebus.applications.saveandrestore.model.search.SearchQueryUtil.Keys; import org.phoebus.applications.saveandrestore.model.search.SearchResult; -import org.phoebus.applications.saveandrestore.ui.FilterChangeListener; -import org.phoebus.applications.saveandrestore.ui.HelpViewer; -import org.phoebus.applications.saveandrestore.ui.ImageRepository; -import org.phoebus.applications.saveandrestore.ui.SaveAndRestoreController; -import org.phoebus.applications.saveandrestore.ui.SaveAndRestoreService; +import org.phoebus.applications.saveandrestore.ui.*; import org.phoebus.applications.saveandrestore.ui.snapshot.tag.TagUtil; import org.phoebus.applications.saveandrestore.ui.snapshot.tag.TagWidget; import org.phoebus.framework.jobs.JobManager; -import org.phoebus.ui.dialog.DialogHelper; +import org.phoebus.ui.autocomplete.PVAutocompleteMenu; import org.phoebus.ui.dialog.ExceptionDetailsErrorDialog; import org.phoebus.ui.dialog.ListSelectionPopOver; import org.phoebus.ui.javafx.ImageCache; @@ -84,15 +59,7 @@ import javax.ws.rs.core.MultivaluedMap; import java.net.URL; import java.text.MessageFormat; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Comparator; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Optional; -import java.util.ResourceBundle; -import java.util.Stack; +import java.util.*; import java.util.logging.Level; import java.util.logging.Logger; import java.util.regex.Pattern; @@ -165,21 +132,6 @@ public class SearchAndFilterViewController implements Initializable, FilterChang @FXML private CheckBox goldenOnlyCheckbox; - @FXML - private ImageView goldenImageView; - - @FXML - private ImageView folderImageView; - - @FXML - private ImageView configurationImageView; - - @FXML - private ImageView snapshotImageView; - - @FXML - private ImageView compositeSnapshotImageView; - @FXML private Label queryLabel; @@ -207,6 +159,9 @@ public class SearchAndFilterViewController implements Initializable, FilterChang @FXML private TableColumn deleteColumn; + @FXML + private TextField pvsTextField; + private final SimpleStringProperty filterNameProperty = new SimpleStringProperty(); private final SaveAndRestoreService saveAndRestoreService; @@ -218,6 +173,8 @@ public class SearchAndFilterViewController implements Initializable, FilterChang private final SimpleIntegerProperty pageSizeProperty = new SimpleIntegerProperty(Preferences.search_result_page_size); + private final SimpleStringProperty pvNamesProperty = new SimpleStringProperty(); + private final ObservableList tableEntries = FXCollections.observableArrayList(); private ListSelectionPopOver tagSearchPopover; @@ -263,28 +220,24 @@ public void initialize(URL url, ResourceBundle resourceBundle) { } }); nodeTypeFolderCheckBox.selectedProperty().bindBidirectional(nodeTypeFolderProperty); - folderImageView.imageProperty().set(ImageRepository.FOLDER); nodeTypeFolderCheckBox.selectedProperty().addListener((observable, oldValue, newValue) -> { if (newValue != null && !newValue.equals(oldValue)) { updateParametersAndSearch(); } }); nodeTypeConfigurationCheckBox.selectedProperty().bindBidirectional(nodeTypeConfigurationProperty); - configurationImageView.imageProperty().set(ImageRepository.CONFIGURATION); nodeTypeConfigurationCheckBox.selectedProperty().addListener((observable, oldValue, newValue) -> { if (newValue != null && !newValue.equals(oldValue)) { updateParametersAndSearch(); } }); nodeTypeSnapshotCheckBox.selectedProperty().bindBidirectional(nodeTypeSnapshotProperty); - snapshotImageView.imageProperty().set(ImageRepository.SNAPSHOT); nodeTypeSnapshotCheckBox.selectedProperty().addListener((observable, oldValue, newValue) -> { if (newValue != null && !newValue.equals(oldValue)) { updateParametersAndSearch(); } }); nodeTypeCompositeSnapshotCheckBox.selectedProperty().bindBidirectional(nodeTypeCompositeSnapshotProperty); - compositeSnapshotImageView.imageProperty().set(ImageRepository.COMPOSITE_SNAPSHOT); nodeTypeCompositeSnapshotCheckBox.selectedProperty().addListener((observable, oldValue, newValue) -> { if (newValue != null && !newValue.equals(oldValue)) { updateParametersAndSearch(); @@ -298,8 +251,6 @@ public void initialize(URL url, ResourceBundle resourceBundle) { } }); - goldenImageView.imageProperty().set(ImageRepository.GOLDEN_SNAPSHOT); - descTextField.textProperty().bindBidirectional(descProperty); descTextField.setOnKeyPressed(e -> { if (e.getCode() == KeyCode.ENTER) { @@ -319,6 +270,15 @@ public void initialize(URL url, ResourceBundle resourceBundle) { } }); + pvsTextField.textProperty().bindBidirectional(pvNamesProperty); + pvsTextField.setOnKeyPressed(e -> { + if (e.getCode() == KeyCode.ENTER) { + updateParametersAndSearch(); + } + }); + + PVAutocompleteMenu.INSTANCE.attachField(pvsTextField); + startTime.textProperty().bindBidirectional(startTimeProperty); startTime.setOnKeyPressed(e -> { if (e.getCode() == KeyCode.ENTER) { @@ -487,10 +447,9 @@ protected void updateItem(Node node, boolean empty) { resultTableView.getSelectionModel().setSelectionMode(SelectionMode.MULTIPLE); resultTableView.setOnDragDetected(e -> { List selectedNodes = resultTableView.getSelectionModel().getSelectedItems(); - if(selectedNodes.stream().anyMatch(n -> + if (selectedNodes.stream().anyMatch(n -> !n.getNodeType().equals(NodeType.SNAPSHOT) && - !n.getNodeType().equals(NodeType.COMPOSITE_SNAPSHOT))) - { + !n.getNodeType().equals(NodeType.COMPOSITE_SNAPSHOT))) { return; } final ClipboardContent content = new ClipboardContent(); @@ -576,7 +535,6 @@ public void search() { Map params = SearchQueryUtil.parseHumanReadableQueryString(query.get()); - params.put("pvs", "georgweiss:ao7,ScNt:test2"); params.put(Keys.FROM.getName(), Integer.toString(pagination.getCurrentPageIndex() * pageSizeProperty.get())); params.put(Keys.SIZE.getName(), Integer.toString(pageSizeProperty.get())); @@ -592,14 +550,7 @@ public void search() { hitCountProperty.set(searchResult.getHitCount()); }); } else { - Platform.runLater(() -> { - Alert alert = new Alert(AlertType.INFORMATION); - alert.setTitle(Messages.searchNoResultsTitle); - alert.setHeaderText(Messages.searchNoResult); - DialogHelper.positionDialog(alert, resultTableView, -300, -200); - alert.show(); - tableEntries.clear(); - }); + Platform.runLater(tableEntries::clear); } } catch (Exception e) { ExceptionDetailsErrorDialog.openError( @@ -669,6 +620,9 @@ private String buildQueryString() { if (tagsProperty.get() != null && !tagsProperty.get().isEmpty()) { map.put(Keys.TAGS.getName(), tagsProperty.get()); } + if (pvNamesProperty.get() != null && !pvNamesProperty.get().isEmpty()) { + map.put(Keys.PVS.getName(), pvNamesProperty.get()); + } List types = new ArrayList<>(); if (nodeTypeFolderProperty.get()) { types.add(NodeType.FOLDER.name().toLowerCase()); diff --git a/app/save-and-restore/app/src/main/java/org/phoebus/applications/saveandrestore/ui/search/SearchWindowController.java b/app/save-and-restore/app/src/main/java/org/phoebus/applications/saveandrestore/ui/search/SearchWindowController.java index b13b1ad6f3..b2e5631aed 100644 --- a/app/save-and-restore/app/src/main/java/org/phoebus/applications/saveandrestore/ui/search/SearchWindowController.java +++ b/app/save-and-restore/app/src/main/java/org/phoebus/applications/saveandrestore/ui/search/SearchWindowController.java @@ -26,18 +26,9 @@ import javafx.beans.property.SimpleStringProperty; import javafx.fxml.FXML; import javafx.fxml.Initializable; -import javafx.scene.control.Alert; +import javafx.scene.control.*; import javafx.scene.control.Alert.AlertType; -import javafx.scene.control.Button; import javafx.scene.control.ButtonBar.ButtonData; -import javafx.scene.control.ButtonType; -import javafx.scene.control.Label; -import javafx.scene.control.Pagination; -import javafx.scene.control.TableColumn; -import javafx.scene.control.TableRow; -import javafx.scene.control.TableView; -import javafx.scene.control.TextField; -import javafx.scene.control.Tooltip; import javafx.scene.image.ImageView; import org.phoebus.applications.saveandrestore.DirectoryUtilities; import org.phoebus.applications.saveandrestore.Messages; @@ -52,7 +43,6 @@ import org.phoebus.applications.saveandrestore.ui.ImageRepository; import org.phoebus.applications.saveandrestore.ui.SaveAndRestoreService; import org.phoebus.framework.jobs.JobManager; -import org.phoebus.ui.dialog.DialogHelper; import org.phoebus.ui.dialog.ExceptionDetailsErrorDialog; import org.phoebus.util.time.TimestampFormats; @@ -60,15 +50,7 @@ import javax.ws.rs.core.MultivaluedMap; import java.net.URL; import java.text.MessageFormat; -import java.util.ArrayList; -import java.util.Collections; -import java.util.Comparator; -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.Optional; -import java.util.ResourceBundle; -import java.util.Stack; +import java.util.*; import java.util.logging.Level; import java.util.logging.Logger; import java.util.regex.Pattern; @@ -80,6 +62,7 @@ * @author Genie Jhang */ +@SuppressWarnings("unused") public class SearchWindowController implements Initializable { private SearchAndFilterViewController searchAndFilterViewController; @@ -184,7 +167,7 @@ protected void updateItem(Node node, boolean empty) { // This is to accept numerical input only, and at most 3 digits (maximizing search to 999 hits). pageSizeTextField.textProperty().addListener((observable, oldValue, newValue) -> { if (DIGIT_PATTERN.matcher(newValue).matches()) { - if ("".equals(newValue)) { + if (newValue.isEmpty()) { pageSizeProperty.set(Preferences.search_result_page_size); } else if (newValue.length() > 3) { pageSizeTextField.setText(oldValue); @@ -282,14 +265,7 @@ public void search() { resultTableView.getItems().setAll(tableEntries); }); } else { - Platform.runLater(() -> { - Alert alert = new Alert(AlertType.INFORMATION); - alert.setTitle(Messages.searchNoResultsTitle); - alert.setHeaderText(Messages.searchNoResult); - DialogHelper.positionDialog(alert, resultTableView, -300, -200); - alert.show(); - clearSearchResult(); - }); + Platform.runLater(this::clearSearchResult); } } catch (Exception e) { ExceptionDetailsErrorDialog.openError( diff --git a/app/save-and-restore/app/src/main/resources/org/phoebus/applications/saveandrestore/messages.properties b/app/save-and-restore/app/src/main/resources/org/phoebus/applications/saveandrestore/messages.properties index 0ea562eeff..eb75c77cf8 100644 --- a/app/save-and-restore/app/src/main/resources/org/phoebus/applications/saveandrestore/messages.properties +++ b/app/save-and-restore/app/src/main/resources/org/phoebus/applications/saveandrestore/messages.properties @@ -131,6 +131,7 @@ promptRenameNodeTitle=Rename node promptRenameNodeContent=Specify a new name (case sensitive) pvList=PV List pvName=PV Name +pvNames=PV name(s) pvNameToolTip=A list of pv's separated by space or semi colon pvNameReadback=Readback PV Name pvNameReadbackTooltip=A list of readback pv's separated by space or semi colon @@ -157,7 +158,6 @@ searchEntryToolTip=Double-click to select the node in the tree view searchFailed=Search failed searchFieldToolTip=Type search query and press Enter to invoke search searchErrorBody=Search failed -searchNoResultsTitle=Search Done searchNoResult=Empty search result searchKeywordLabel=Keyword searchQuery=Search Query diff --git a/app/save-and-restore/app/src/main/resources/org/phoebus/applications/saveandrestore/ui/search/SearchAndFilterView.fxml b/app/save-and-restore/app/src/main/resources/org/phoebus/applications/saveandrestore/ui/search/SearchAndFilterView.fxml index a061064b36..f551466521 100644 --- a/app/save-and-restore/app/src/main/resources/org/phoebus/applications/saveandrestore/ui/search/SearchAndFilterView.fxml +++ b/app/save-and-restore/app/src/main/resources/org/phoebus/applications/saveandrestore/ui/search/SearchAndFilterView.fxml @@ -23,235 +23,276 @@ - - +
- - + + - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + - - - + +
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + - + - - + + + + + + + + + + + + + + + + + + + + + + + + +
diff --git a/app/save-and-restore/model/src/main/java/org/phoebus/applications/saveandrestore/model/search/SearchQueryUtil.java b/app/save-and-restore/model/src/main/java/org/phoebus/applications/saveandrestore/model/search/SearchQueryUtil.java index 03e0928f3a..b7b933310d 100644 --- a/app/save-and-restore/model/src/main/java/org/phoebus/applications/saveandrestore/model/search/SearchQueryUtil.java +++ b/app/save-and-restore/model/src/main/java/org/phoebus/applications/saveandrestore/model/search/SearchQueryUtil.java @@ -40,7 +40,8 @@ public enum Keys { ENDTIME("end"), FROM("from"), SIZE("size"), - GOLDEN("golden"); + GOLDEN("golden"), + PVS("pvs"); private final String name; @@ -68,6 +69,7 @@ public String toString() { lookupTable.put("user", Keys.USER); lookupTable.put("type", Keys.TYPE); lookupTable.put("golden", Keys.GOLDEN); + lookupTable.put("pvs", Keys.PVS); } public static Keys findKey(String keyName) { From 54b2c4f9a66470a591714653ab8fe2b93c8bbdc4 Mon Sep 17 00:00:00 2001 From: georgweiss Date: Tue, 12 Dec 2023 10:11:07 +0100 Subject: [PATCH 4/6] Support for phrase search on name in save&restore, updated documentation --- .../app/doc/images/search-and-filter-view.png | Bin 200486 -> 86869 bytes .../saveandrestore/search/SearchUtil.java | 23 +++++++++++++++++- .../main/resources/static/SearchHelp_en.html | 9 +++++++ 3 files changed, 31 insertions(+), 1 deletion(-) diff --git a/app/save-and-restore/app/doc/images/search-and-filter-view.png b/app/save-and-restore/app/doc/images/search-and-filter-view.png index 76ea42b789f5863e34da781f4c98ff514b2eba91..4d0747a9920acecdc1400d1cd2f8b499fc936b56 100644 GIT binary patch literal 86869 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

9Xq_nNk+-u>Ww*kkcmY#a0WQV!aiy(&*$+ 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

!VQg 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 literal 200486 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 IMf->U7n~SEEC2ui diff --git a/services/save-and-restore/src/main/java/org/phoebus/service/saveandrestore/search/SearchUtil.java b/services/save-and-restore/src/main/java/org/phoebus/service/saveandrestore/search/SearchUtil.java index 171b6c0e52..c84eaf1f31 100644 --- a/services/save-and-restore/src/main/java/org/phoebus/service/saveandrestore/search/SearchUtil.java +++ b/services/save-and-restore/src/main/java/org/phoebus/service/saveandrestore/search/SearchUtil.java @@ -18,6 +18,7 @@ import java.time.format.DateTimeFormatter; import java.util.*; import java.util.Map.Entry; +import java.util.stream.Collectors; /** * A utility class for creating a search query for log entries based on time, @@ -52,6 +53,7 @@ public SearchRequest buildSearchRequest(MultiValueMap searchPara boolean fuzzySearch = false; List descriptionTerms = new ArrayList<>(); List nodeNameTerms = new ArrayList<>(); + List nodeNamePhraseTerms = new ArrayList<>(); List nodeTypeTerms = new ArrayList<>(); List uniqueIdTerms = new ArrayList<>(); boolean temporalSearch = false; @@ -73,7 +75,13 @@ public SearchRequest buildSearchRequest(MultiValueMap searchPara case "name": for (String value : parameter.getValue()) { for (String pattern : value.split("[|,;]")) { - nodeNameTerms.add(pattern.trim().toLowerCase()); + String term = pattern.trim().toLowerCase(); + if(term.startsWith("\"") && term.endsWith("\"")){ + nodeNamePhraseTerms.add(term.substring(1, term.length() - 1)); + } + else{ + nodeNameTerms.add(term); + } } } break; @@ -257,6 +265,19 @@ public SearchRequest buildSearchRequest(MultiValueMap searchPara boolQueryBuilder.must(nodeNameQuery.build()._toQuery()); } + if(!nodeNamePhraseTerms.isEmpty()){ + DisMaxQuery.Builder nodeNamePhraseQueryBuilder = new DisMaxQuery.Builder(); + List nestedQueries = new ArrayList<>(); + nodeNamePhraseTerms.forEach(phraseSearchTerm -> { + NestedQuery innerNestedQuery; + MatchPhraseQuery matchPhraseQuery = MatchPhraseQuery.of(m -> m.field("node.name").query(phraseSearchTerm)); + innerNestedQuery = NestedQuery.of(n -> n.path("node").query(matchPhraseQuery._toQuery())); + nestedQueries.add(innerNestedQuery); + }); + nodeNamePhraseQueryBuilder.queries(nestedQueries.stream().map(QueryVariant::_toQuery).collect(Collectors.toList())); + boolQueryBuilder.must(nodeNamePhraseQueryBuilder.build()._toQuery()); + } + // Add node type query. Fuzzy search not needed as node types are well-defined and limited in number. if (!nodeTypeTerms.isEmpty()) { DisMaxQuery.Builder nodeTypeQuery = new DisMaxQuery.Builder(); diff --git a/services/save-and-restore/src/main/resources/static/SearchHelp_en.html b/services/save-and-restore/src/main/resources/static/SearchHelp_en.html index 049dda5727..2dbc1d25a6 100644 --- a/services/save-and-restore/src/main/resources/static/SearchHelp_en.html +++ b/services/save-and-restore/src/main/resources/static/SearchHelp_en.html @@ -66,6 +66,10 @@

start and end

name

A search for nodes by name will match on the name as specified by the user when the node was created or updated. The value for this key is case insensitive. +

+ The space character along with other "special" characters is used by the underlying search engine to tokenize + text when it is indexed. Consequently, a search for a name that includes a space character must be quoted. +

user

This is the username associated with a node when it was saved. The value for this key is case insensitive. @@ -99,6 +103,11 @@

tags

tags=Beam* will work, while tags=Beam will not.

+

PV name(s)

+ This is used to perform a search for configuration nodes containing the specified node name(s). The input + field is backed by the PV name completion mechanism used in other parts of the application, i.e. a list of + PV names - supplied by the Channel Finder service - is shown as user types in the input field. +

Combining keys

If multiple keys are used in a search query, the service will consider all (valid) keys and return nodes matching all criteria. In other words, search criteria are and:ed. However, as mentioned above, From 487323ab9cb619f78f75a060d9fd5b4eef9ace83 Mon Sep 17 00:00:00 2001 From: georgweiss Date: Wed, 13 Dec 2023 10:06:53 +0100 Subject: [PATCH 5/6] Code cleanup and Javadoc additions --- .../ConfigurationDataRepository.java | 34 ++++++++++--------- .../ElasticsearchTreeRepository.java | 18 ---------- .../saveandrestore/search/SearchUtil.java | 6 ++-- 3 files changed, 21 insertions(+), 37 deletions(-) diff --git a/services/save-and-restore/src/main/java/org/phoebus/service/saveandrestore/persistence/dao/impl/elasticsearch/ConfigurationDataRepository.java b/services/save-and-restore/src/main/java/org/phoebus/service/saveandrestore/persistence/dao/impl/elasticsearch/ConfigurationDataRepository.java index 54ead5fa24..f8281f5b36 100644 --- a/services/save-and-restore/src/main/java/org/phoebus/service/saveandrestore/persistence/dao/impl/elasticsearch/ConfigurationDataRepository.java +++ b/services/save-and-restore/src/main/java/org/phoebus/service/saveandrestore/persistence/dao/impl/elasticsearch/ConfigurationDataRepository.java @@ -23,10 +23,9 @@ import co.elastic.clients.elasticsearch._types.Result; import co.elastic.clients.elasticsearch._types.query_dsl.MatchAllQuery; import co.elastic.clients.elasticsearch.core.*; +import co.elastic.clients.elasticsearch.core.search.Hit; import co.elastic.clients.transport.endpoints.BooleanResponse; import org.phoebus.applications.saveandrestore.model.ConfigurationData; -import org.phoebus.applications.saveandrestore.model.search.SearchResult; -import org.phoebus.service.saveandrestore.model.ESTreeNode; import org.phoebus.service.saveandrestore.search.SearchUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; @@ -104,7 +103,7 @@ public Optional findById(String id) { if (!resp.found()) { return Optional.empty(); } - return Optional.of(resp.source()); + return resp.source() != null ? Optional.of(resp.source()) : Optional.empty(); } catch (Exception e) { logger.log(Level.SEVERE, "Failed to retrieve configuration with id: " + id, e); throw new ResponseStatusException(HttpStatus.NOT_FOUND, "Failed to retrieve configuration with id: " + id); @@ -124,7 +123,7 @@ public boolean existsById(String s) { } @Override - public Iterable findAll() { + public Iterable findAll() { return null; } @@ -135,14 +134,13 @@ public Iterable findAllById(Iterable strings) { @Override public long count() { - try{ + try { CountRequest countRequest = CountRequest.of(c -> c.index(ES_CONFIGURATION_INDEX)); CountResponse countResponse = client.count(countRequest); return countResponse.count(); - } - catch(Exception e){ - logger.log(Level.SEVERE, "Failed to count ConfigurationData objects" , e); + } catch (Exception e) { + logger.log(Level.SEVERE, "Failed to count ConfigurationData objects", e); throw new RuntimeException(e); } } @@ -153,10 +151,9 @@ public void deleteById(String s) { DeleteRequest deleteRequest = DeleteRequest.of(d -> d.index(ES_CONFIGURATION_INDEX).id(s).refresh(Refresh.True)); DeleteResponse deleteResponse = client.delete(deleteRequest); - if(deleteResponse.result().equals(Result.Deleted)){ + if (deleteResponse.result().equals(Result.Deleted)) { logger.log(Level.WARNING, "Configuration with id " + s + " deleted."); - } - else{ + } else { logger.log(Level.WARNING, "Configuration with id " + s + " NOT deleted."); } } catch (IOException e) { @@ -193,17 +190,22 @@ public void deleteAll() { } } - public List searchOnPvName(MultiValueMap searchParameters){ + /** + * Performs a search on a list of PV names. An OR strategy is used, i.e. {@link ConfigurationData} document need + * only contain one of the listed PV names. + * @param searchParameters Search parameters provided by client. + * @return Potentially empty {@link List} of {@link ConfigurationData} objects contain any of the listed PV names. + */ + public List searchOnPvName(MultiValueMap searchParameters) { Optional>> optional = - searchParameters.entrySet().stream().filter(e -> e.getKey().strip().toLowerCase().equals("pvs")).findFirst(); - if(optional.isEmpty()){ + searchParameters.entrySet().stream().filter(e -> e.getKey().strip().equalsIgnoreCase("pvs")).findFirst(); + if (optional.isEmpty()) { return Collections.emptyList(); } SearchRequest searchRequest = searchUtil.buildSearchRequestForPvs(optional.get().getValue()); try { SearchResponse searchResponse = client.search(searchRequest, ConfigurationData.class); - List configurationDataList = searchResponse.hits().hits().stream().map(h -> h.source()).collect(Collectors.toList()); - return configurationDataList; + return searchResponse.hits().hits().stream().map(Hit::source).collect(Collectors.toList()); } catch (IOException e) { throw new RuntimeException(e); } diff --git a/services/save-and-restore/src/main/java/org/phoebus/service/saveandrestore/persistence/dao/impl/elasticsearch/ElasticsearchTreeRepository.java b/services/save-and-restore/src/main/java/org/phoebus/service/saveandrestore/persistence/dao/impl/elasticsearch/ElasticsearchTreeRepository.java index fa1ecf2769..ef4fdec0ad 100644 --- a/services/save-and-restore/src/main/java/org/phoebus/service/saveandrestore/persistence/dao/impl/elasticsearch/ElasticsearchTreeRepository.java +++ b/services/save-and-restore/src/main/java/org/phoebus/service/saveandrestore/persistence/dao/impl/elasticsearch/ElasticsearchTreeRepository.java @@ -351,22 +351,4 @@ public SearchResult search(MultiValueMap searchParameters) { throw new RuntimeException(e); } } - - public List getByNodeName(String nodeName) { - BoolQuery.Builder boolQueryBuilder = new Builder(); - NestedQuery innerNestedQuery; - MatchQuery matchQuery = MatchQuery.of(m -> m.field("node.name").query(nodeName)); - innerNestedQuery = NestedQuery.of(n1 -> n1.path("node").query(matchQuery._toQuery())); - boolQueryBuilder.must(innerNestedQuery._toQuery()); - SearchRequest searchRequest = SearchRequest.of(s -> s.index(ES_TREE_INDEX) - .query(boolQueryBuilder.build()._toQuery()) - .timeout("60s") - .size(1000)); - try { - SearchResponse esTreeNodeSearchResponse = client.search(searchRequest, ESTreeNode.class); - return esTreeNodeSearchResponse.hits().hits().stream().map(Hit::source).collect(Collectors.toList()); - } catch (IOException e) { - throw new RuntimeException(e); - } - } } diff --git a/services/save-and-restore/src/main/java/org/phoebus/service/saveandrestore/search/SearchUtil.java b/services/save-and-restore/src/main/java/org/phoebus/service/saveandrestore/search/SearchUtil.java index c84eaf1f31..9d7b0a368d 100644 --- a/services/save-and-restore/src/main/java/org/phoebus/service/saveandrestore/search/SearchUtil.java +++ b/services/save-and-restore/src/main/java/org/phoebus/service/saveandrestore/search/SearchUtil.java @@ -314,15 +314,15 @@ public SearchRequest buildSearchRequest(MultiValueMap searchPara /** * Builds a query on the configuration index to find {@link org.phoebus.applications.saveandrestore.model.ConfigurationData} * documents containing any of the PV names passed to this method. - * @param pvValues List of PV names. Query will user or-strategy. + * @param pvNames List of PV names. Query will user or-strategy. * @return A {@link SearchRequest} object, no limit on result size except maximum Elastic limit. */ - public SearchRequest buildSearchRequestForPvs(List pvValues) { + public SearchRequest buildSearchRequestForPvs(List pvNames) { int searchResultSize = defaultSearchSize; Builder boolQueryBuilder = new Builder(); DisMaxQuery.Builder pvQuery = new DisMaxQuery.Builder(); List pvQueries = new ArrayList<>(); - for (String value : pvValues) { + for (String value : pvNames) { for (String pattern : value.split("[|,;]")) { pvQueries.add(WildcardQuery.of(w -> w.field("pvList.pvName") .caseInsensitive(true) From 9a623097112cee25c23806b602f755bfd06b7912 Mon Sep 17 00:00:00 2001 From: georgweiss Date: Tue, 16 Jan 2024 11:52:57 +0100 Subject: [PATCH 6/6] Fix test cases --- .../search/SearchAndFilterViewController.java | 7 ++- .../impl/elasticsearch/ElasticsearchDAO.java | 4 ++ .../saveandrestore/search/SearchUtil.java | 10 ++-- .../main/resources/static/SearchHelp_en.html | 6 +- .../persistence/dao/impl/DAOTestIT.java | 56 ++++++------------- .../web/controllers/SearchControllerTest.java | 7 +-- .../resources/test_application.properties | 22 ++++++++ 7 files changed, 59 insertions(+), 53 deletions(-) diff --git a/app/save-and-restore/app/src/main/java/org/phoebus/applications/saveandrestore/ui/search/SearchAndFilterViewController.java b/app/save-and-restore/app/src/main/java/org/phoebus/applications/saveandrestore/ui/search/SearchAndFilterViewController.java index 915e461f6a..53cf201352 100644 --- a/app/save-and-restore/app/src/main/java/org/phoebus/applications/saveandrestore/ui/search/SearchAndFilterViewController.java +++ b/app/save-and-restore/app/src/main/java/org/phoebus/applications/saveandrestore/ui/search/SearchAndFilterViewController.java @@ -24,6 +24,7 @@ import javafx.beans.property.*; import javafx.collections.FXCollections; import javafx.collections.ObservableList; +import javafx.event.Event; import javafx.fxml.FXML; import javafx.fxml.Initializable; import javafx.scene.control.*; @@ -271,7 +272,9 @@ public void initialize(URL url, ResourceBundle resourceBundle) { }); pvsTextField.textProperty().bindBidirectional(pvNamesProperty); - pvsTextField.setOnKeyPressed(e -> { + // NOTE: setOnKeyPressed will not work here as that is supposed to trigger the PV autocompletion + // mechanism, which will consume the event. + pvsTextField.setOnKeyReleased(e -> { if (e.getCode() == KeyCode.ENTER) { updateParametersAndSearch(); } @@ -681,7 +684,7 @@ private class DeleteTableCell extends TableCell { protected void updateItem(final Filter filter, final boolean empty) { super.updateItem(filter, empty); // If user clicks on the delete column cell, consume the mouse event to prevent the filter from being loaded. - setOnMouseClicked(event -> event.consume()); + setOnMouseClicked(Event::consume); if (empty) { setGraphic(null); } else { diff --git a/services/save-and-restore/src/main/java/org/phoebus/service/saveandrestore/persistence/dao/impl/elasticsearch/ElasticsearchDAO.java b/services/save-and-restore/src/main/java/org/phoebus/service/saveandrestore/persistence/dao/impl/elasticsearch/ElasticsearchDAO.java index 58fb9c8547..5ff7180588 100644 --- a/services/save-and-restore/src/main/java/org/phoebus/service/saveandrestore/persistence/dao/impl/elasticsearch/ElasticsearchDAO.java +++ b/services/save-and-restore/src/main/java/org/phoebus/service/saveandrestore/persistence/dao/impl/elasticsearch/ElasticsearchDAO.java @@ -1086,6 +1086,10 @@ private SearchResult searchInternal(MultiValueMap searchParamete // Did client specify search on pv name(s)? if(searchParameters.keySet().stream().anyMatch(k -> k.strip().toLowerCase().contains("pvs"))){ List configurationDataList = configurationDataRepository.searchOnPvName(searchParameters); + if(configurationDataList.isEmpty()){ + // No matching configurations found, return empty SearchResult + return new SearchResult(0, Collections.emptyList()); + } List uniqueIds = configurationDataList.stream().map(ConfigurationData::getUniqueId).collect(Collectors.toList()); MultiValueMap augmented = new LinkedMultiValueMap<>(); augmented.putAll(searchParameters); diff --git a/services/save-and-restore/src/main/java/org/phoebus/service/saveandrestore/search/SearchUtil.java b/services/save-and-restore/src/main/java/org/phoebus/service/saveandrestore/search/SearchUtil.java index 9d7b0a368d..5299f703f4 100644 --- a/services/save-and-restore/src/main/java/org/phoebus/service/saveandrestore/search/SearchUtil.java +++ b/services/save-and-restore/src/main/java/org/phoebus/service/saveandrestore/search/SearchUtil.java @@ -313,7 +313,7 @@ public SearchRequest buildSearchRequest(MultiValueMap searchPara /** * Builds a query on the configuration index to find {@link org.phoebus.applications.saveandrestore.model.ConfigurationData} - * documents containing any of the PV names passed to this method. + * documents containing any of the PV names passed to this method. Both setpoint and readback PV names are considered. * @param pvNames List of PV names. Query will user or-strategy. * @return A {@link SearchRequest} object, no limit on result size except maximum Elastic limit. */ @@ -324,14 +324,12 @@ public SearchRequest buildSearchRequestForPvs(List pvNames) { List pvQueries = new ArrayList<>(); for (String value : pvNames) { for (String pattern : value.split("[|,;]")) { - pvQueries.add(WildcardQuery.of(w -> w.field("pvList.pvName") - .caseInsensitive(true) - .value(pattern.trim()))._toQuery()); + pvQueries.add(TermQuery.of(t -> t.field("pvList.pvName").value(pattern.trim()))._toQuery()); + pvQueries.add(TermQuery.of(t -> t.field("pvList.readbackPvName").value(pattern.trim()))._toQuery()); } } Query pvsQuery = pvQuery.queries(pvQueries).build()._toQuery(); - NestedQuery nestedPvsQuery = NestedQuery.of(n -> n.path("pvList").query(pvsQuery).scoreMode(ChildScoreMode.None)); - boolQueryBuilder.must(nestedPvsQuery._toQuery()); + boolQueryBuilder.must(pvsQuery); return SearchRequest.of(s -> s.index(ES_CONFIGURATION_INDEX) .query(boolQueryBuilder.build()._toQuery()) diff --git a/services/save-and-restore/src/main/resources/static/SearchHelp_en.html b/services/save-and-restore/src/main/resources/static/SearchHelp_en.html index 2dbc1d25a6..7ad50e0074 100644 --- a/services/save-and-restore/src/main/resources/static/SearchHelp_en.html +++ b/services/save-and-restore/src/main/resources/static/SearchHelp_en.html @@ -104,10 +104,14 @@

tags

PV name(s)

- This is used to perform a search for configuration nodes containing the specified node name(s). The input + This is used to perform a search for configuration nodes containing the specified PV name(s). The input field is backed by the PV name completion mechanism used in other parts of the application, i.e. a list of PV names - supplied by the Channel Finder service - is shown as user types in the input field. +

+ Search on PV names will consider both setpoint PVs as well readback PVs in configurations. +

+

Combining keys

If multiple keys are used in a search query, the service will consider all (valid) keys and return nodes matching all criteria. In other words, search criteria are and:ed. However, as mentioned above, diff --git a/services/save-and-restore/src/test/java/org/phoebus/service/saveandrestore/persistence/dao/impl/DAOTestIT.java b/services/save-and-restore/src/test/java/org/phoebus/service/saveandrestore/persistence/dao/impl/DAOTestIT.java index 6c0fededb1..c16a335dcd 100644 --- a/services/save-and-restore/src/test/java/org/phoebus/service/saveandrestore/persistence/dao/impl/DAOTestIT.java +++ b/services/save-and-restore/src/test/java/org/phoebus/service/saveandrestore/persistence/dao/impl/DAOTestIT.java @@ -22,30 +22,13 @@ import co.elastic.clients.elasticsearch.indices.DeleteIndexRequest; import co.elastic.clients.elasticsearch.indices.ExistsRequest; import co.elastic.clients.transport.endpoints.BooleanResponse; -import org.epics.vtype.Alarm; -import org.epics.vtype.AlarmSeverity; -import org.epics.vtype.AlarmStatus; -import org.epics.vtype.Display; -import org.epics.vtype.Time; -import org.epics.vtype.VDouble; -import org.epics.vtype.VInt; +import org.epics.vtype.*; import org.junit.jupiter.api.AfterAll; import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.TestInstance; import org.junit.jupiter.api.TestInstance.Lifecycle; -import org.phoebus.applications.saveandrestore.model.CompositeSnapshot; -import org.phoebus.applications.saveandrestore.model.CompositeSnapshotData; -import org.phoebus.applications.saveandrestore.model.ConfigPv; -import org.phoebus.applications.saveandrestore.model.Configuration; -import org.phoebus.applications.saveandrestore.model.ConfigurationData; -import org.phoebus.applications.saveandrestore.model.Node; -import org.phoebus.applications.saveandrestore.model.NodeType; -import org.phoebus.applications.saveandrestore.model.Snapshot; -import org.phoebus.applications.saveandrestore.model.SnapshotData; -import org.phoebus.applications.saveandrestore.model.SnapshotItem; -import org.phoebus.applications.saveandrestore.model.Tag; -import org.phoebus.applications.saveandrestore.model.TagData; +import org.phoebus.applications.saveandrestore.model.*; import org.phoebus.applications.saveandrestore.model.search.Filter; import org.phoebus.applications.saveandrestore.model.search.SearchResult; import org.phoebus.service.saveandrestore.NodeNotFoundException; @@ -61,24 +44,11 @@ import org.springframework.util.LinkedMultiValueMap; import org.springframework.util.MultiValueMap; -import javax.ws.rs.core.MultivaluedHashMap; -import javax.ws.rs.core.MultivaluedMap; import java.io.IOException; import java.time.Instant; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collections; -import java.util.Date; -import java.util.List; - -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertFalse; -import static org.junit.jupiter.api.Assertions.assertNotEquals; -import static org.junit.jupiter.api.Assertions.assertNotNull; -import static org.junit.jupiter.api.Assertions.assertNull; -import static org.junit.jupiter.api.Assertions.assertThrows; -import static org.junit.jupiter.api.Assertions.assertTrue; -import static org.junit.jupiter.api.Assertions.fail; +import java.util.*; + +import static org.junit.jupiter.api.Assertions.*; /** * Integration test to be executed against a running Elasticsearch 8.x instance. @@ -520,7 +490,7 @@ public void testTakeSnapshot() { } @Test - public void testUpdateSnapshot(){ + public void testUpdateSnapshot() { Node rootNode = nodeDAO.getRootNode(); Node folderNode = Node.builder().name("folder").build(); @@ -1221,7 +1191,7 @@ public void testMoveConfigurationNameClash() { Node topLevelFolderNode2 = nodeDAO.createNode(rootNode.getUniqueId(), Node.builder().name("top level folder 2").build()); - configNode2 = nodeDAO.createNode(topLevelFolderNode2.getUniqueId(), configNode2); + nodeDAO.createNode(topLevelFolderNode2.getUniqueId(), configNode2); Node _configNode = configNode; @@ -2289,7 +2259,7 @@ public void testFilters() { } @Test - public void testSearchForPvs() throws Exception{ + public void testSearchForPvs() { Node rootNode = nodeDAO.getRootNode(); Node folderNode = Node.builder().name("folder").build(); @@ -2310,7 +2280,7 @@ public void testSearchForPvs() throws Exception{ configuration2.setConfigurationNode(config2); ConfigurationData configurationData2 = new ConfigurationData(); configurationData2.setPvList(Arrays.asList(ConfigPv.builder().pvName("pv12").build(), - ConfigPv.builder().pvName("pv22").build())); + ConfigPv.builder().pvName("pv22").readbackPvName("readbackpv22").build())); configuration2.setConfigurationData(configurationData2); configuration2 = nodeDAO.createConfiguration(folderNode.getUniqueId(), configuration2); @@ -2334,6 +2304,14 @@ public void testSearchForPvs() throws Exception{ searchResult = nodeDAO.search(searchParameters); assertEquals(1, searchResult.getHitCount()); + searchParameters.put("pvs", List.of("readbackpv22")); + searchResult = nodeDAO.search(searchParameters); + assertEquals(1, searchResult.getHitCount()); + + searchParameters.put("pvs", List.of("invalid")); + searchResult = nodeDAO.search(searchParameters); + assertEquals(0, searchResult.getHitCount()); + searchParameters.clear(); searchResult = nodeDAO.search(searchParameters); // No pvs specified -> find all nodes. diff --git a/services/save-and-restore/src/test/java/org/phoebus/service/saveandrestore/web/controllers/SearchControllerTest.java b/services/save-and-restore/src/test/java/org/phoebus/service/saveandrestore/web/controllers/SearchControllerTest.java index 6e9ef72ea1..dd4ab3ee4d 100644 --- a/services/save-and-restore/src/test/java/org/phoebus/service/saveandrestore/web/controllers/SearchControllerTest.java +++ b/services/save-and-restore/src/test/java/org/phoebus/service/saveandrestore/web/controllers/SearchControllerTest.java @@ -100,10 +100,7 @@ public void testSearchForPVs() { SearchRequest searchRequest = searchUtil.buildSearchRequestForPvs(List.of("abc")); assertEquals(ES_CONFIGURATION_INDEX, searchRequest.index().get(0)); - assertEquals("pvList", searchRequest.query().bool().must().get(0).nested().path()); - assertEquals("pvList.pvName", searchRequest.query().bool().must().get(0).nested().query().disMax() - .queries().get(0).wildcard().field()); - assertEquals("abc", searchRequest.query().bool().must().get(0).nested().query().disMax() - .queries().get(0).wildcard().value()); + assertEquals("pvList.pvName", searchRequest.query().bool().must().get(0).disMax().queries().get(0).term().field()); + assertEquals("abc", searchRequest.query().bool().must().get(0).disMax().queries().get(0).term().value().stringValue()); } } diff --git a/services/save-and-restore/src/test/resources/test_application.properties b/services/save-and-restore/src/test/resources/test_application.properties index cd97c12504..a1068517b7 100644 --- a/services/save-and-restore/src/test/resources/test_application.properties +++ b/services/save-and-restore/src/test/resources/test_application.properties @@ -1,2 +1,24 @@ auth.impl = demo authorization.permitall=false + +logging.level.org.springframework=INFO +app.version=@project.version@ +app.name=@project.name@ + +server.servlet.contextPath=/save-restore + +# Elasticsearch connection parameters +elasticsearch.network.host=localhost +elasticsearch.http.port=9200 + +# Do not change this! +spring.jackson.serialization.write-dates-as-timestamps=false + +# The names of the index to use for save&restore +elasticsearch.tree_node.index=test_saveandrestore_tree +elasticsearch.configuration_node.index=test_saveandrestore_configuration +elasticsearch.snapshot_node.index:test_saveandrestore_snapshot +elasticsearch.composite_snapshot_node.index=test_saveandrestore_composite_snapshot +elasticsearch.filter.index:test_saveandrestore_filter + +