Project

General

Profile

« Previous | Next » 

Revision cae7d9c1

Added by Patrick Plitzner over 5 years ago

Adapt gfbio term search to use '*' wild card search

View differences:

eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/l10n/messages.properties
354 354
GfBioTerminologyImportPresenter_NO_RESULTS_MESSAGE=No results found for the query.
355 355
GfBioTerminologyImportPresenter_NO_RESULTS_TITLE=No results found
356 356
GfBioTerminologyImportPresenter_COMBO_DEFAULT=All ontologies
357
GfBioTerminologyImportPresenter_TEXT_SEARCH_DEFAULT=Wrap search term with '\"' for exact search...
357
GfBioTerminologyImportPresenter_TEXT_SEARCH_DEFAULT=Use "*" for wildcard searching
358 358
GfBioTerminologyImportPresenter_SEARCH_TOO_SHORT_MESSAGE=Search phrase with <4 letters are not possible for all ontologies. Please select a specific ontology
359 359
GfBioTerminologyImportPresenter_SEARCH_TOO_SHORT_TITLE=Search phrase too short
360 360

  
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/l10n/messages_de.properties
354 354
GfBioTerminologyImportPresenter_NO_RESULTS_MESSAGE=Keine Ergebnisse f?r die Anfrage gefunden.
355 355
GfBioTerminologyImportPresenter_NO_RESULTS_TITLE=Keine Ergebnisse
356 356
GfBioTerminologyImportPresenter_COMBO_DEFAULT=Alle Ontologien
357
GfBioTerminologyImportPresenter_TEXT_SEARCH_DEFAULT=Suchbegriff mit '\"' f?r exakte Suche...
357
GfBioTerminologyImportPresenter_TEXT_SEARCH_DEFAULT='*' f\u00FCr Platzhalter-Suche benutzen
358 358
GfBioTerminologyImportPresenter_SEARCH_TOO_SHORT_MESSAGE=Suchbegriffe mit <4 Buchstaben sind nicht m?glich f?r alle Ontologien. Bitte eine einzelne Ontologie ausw?hlen.
359 359
GfBioTerminologyImportPresenter_SEARCH_TOO_SHORT_TITLE=Suchbegriff zu kurz
360 360

  
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/webimport/termimport/requests/AbstractTerminologyServiceRequest.java
15 15
import java.net.URI;
16 16
import java.net.URISyntaxException;
17 17
import java.net.URL;
18
import java.net.URLEncoder;
18 19
import java.util.List;
19 20

  
20 21
/**
......
40 41
                serviceParameters.forEach(param->params.append(param.key+"="+param.value+"&"));
41 42
                queryString += params.toString();
42 43
            }
44
            queryString = URLEncoder.encode(queryString, "UTF-8");
43 45
            URI uri = new URI("https", "dev-gfbio.bgbm.org", pathString, queryString, null);
44 46
            URL url = uri.toURL();
45 47
            HttpURLConnection conn = (HttpURLConnection) url.openConnection();
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/webimport/termimport/requests/RequestSearch.java
22 22
 */
23 23
public class RequestSearch extends AbstractTerminologyServiceRequest{
24 24

  
25
    private static final String QUOTATION_MARK = "\"";
25
    private static final String REGEX_WILDCARD = ".*";
26
    private static final String REGEX_BEGINNING = "^";
27
    private static final String REGEX_END = "$";
28
    private static final String ASTERISK = "*";
26 29
    private static final String SEARCH = "search";
27 30
    private static final String TRUE = "true";
28 31
    private static final String INTERNAL_ONLY = "internal_only";
29 32
    private static final String INCLUDED = "included";
33
    private static final String REGEX = "regex";
30 34
    private static final String EXACT = "exact";
31 35
    private static final String MATCH_TYPE = "match_type";
32 36
    private String searchString;
......
52 56
    protected List<RequestParameter> getServiceParameters() {
53 57
        List<RequestParameter> params = new ArrayList<>();
54 58
        params.add(new RequestParameter(TerminologyServiceConstants.ATTR_QUERY, searchString));
55
        if(searchString.contains(QUOTATION_MARK)){
56
            params.add(new RequestParameter(MATCH_TYPE, EXACT));
57
            //FIXME: this is a simplification of regex search
58
            searchString = searchString.replace(QUOTATION_MARK, "");
59
        if(searchString.contains(ASTERISK)){
60
            params.add(new RequestParameter(MATCH_TYPE, REGEX));
61
            if(searchString.startsWith(ASTERISK)){
62
                searchString.replaceFirst(ASTERISK, REGEX_BEGINNING);
63
            }
64
            if(searchString.endsWith(ASTERISK)){
65
                searchString = searchString.substring(0, searchString.length()-1);
66
                searchString += REGEX_END;
67
            }
68
            searchString = searchString.replace(ASTERISK, REGEX_WILDCARD);
59 69
        }
60 70
        else{
61
            params.add(new RequestParameter(MATCH_TYPE, INCLUDED));
71
            params.add(new RequestParameter(MATCH_TYPE, EXACT));
62 72
        }
63 73
        params.add(new RequestParameter(INTERNAL_ONLY, TRUE));
64 74
        params.add(new RequestParameter(TerminologyServiceConstants.ATTR_TERMINOLOGIES,

Also available in: Unified diff