Package org.fao.geonet.kernel.search

Examples of org.fao.geonet.kernel.search.SearchManager$Spatial


                    "\tfrom: '" + origin + "'");
        }
       
        GeonetContext gc = (GeonetContext) context
                .getHandlerContext(Geonet.CONTEXT_NAME);
        SearchManager sm = gc.getBean(SearchManager.class);
        // The response element
        Element suggestionsResponse = new Element(ELEM_ITEMS);

        TreeSet<SearchManager.TermFrequency> listOfSuggestions;

        // Starts with element first
        if (sortBy.equalsIgnoreCase(SORT_BY_OPTION.STARTSWITHFIRST.toString())) {
            listOfSuggestions = new TreeSet<SearchManager.TermFrequency>(new StartsWithComparator(searchValueWithoutWildcard));
        } else if (sortBy.equalsIgnoreCase(SORT_BY_OPTION.ALPHA.toString())) {
            // Sort by alpha and frequency
            listOfSuggestions = new TreeSet<SearchManager.TermFrequency>();
        } else {
            listOfSuggestions = new TreeSet<SearchManager.TermFrequency>(new FrequencyComparator());
        }
       
        // If a field is stored, field values could be retrieved from the index
        // The main advantage is that only values from records visible to the
        // user are returned, because the search filter the results first.
        if (origin.equals("") || origin.equals(RECORDS_FIELD_VALUES)) {
            LuceneSearcher searcher = (LuceneSearcher) sm.newSearcher(SearchManager.LUCENE, Geonet.File.SEARCH_LUCENE);

            searcher.getSuggestionForFields(context, fieldName, searchValue, _config, maxNumberOfTerms, threshold, listOfSuggestions);
        }
        // No values found from the index records field value ...
        if (origin.equals(INDEX_TERM_VALUES)
                || (listOfSuggestions.size() == 0 && origin.equals(""))) {
            // If a field is not stored, field values could not be retrieved
            // In that case search the index
            listOfSuggestions.addAll(sm.getTermsFequency(
                    fieldName, searchValue, maxNumberOfTerms, threshold, context));
        }

        if (Log.isDebugEnabled(Geonet.SEARCH_ENGINE)) {
            Log.debug(Geonet.SEARCH_ENGINE,
View Full Code Here


  public Element exec(Element params, ServiceContext context) throws Exception
  {
    GeonetContext gc = (GeonetContext) context.getHandlerContext(Geonet.CONTEXT_NAME);

    SearchManager searchMan = gc.getBean(SearchManager.class);

    Element elData  = SearchDefaults.getDefaultSearch(context, params);
    String  sRemote = elData.getChildText(Geonet.SearchResult.REMOTE);
    boolean remote  = sRemote != null && sRemote.equals(Geonet.Text.ON);

    // Parse bbox & assign to four *BL params
    Element bbox  = elData.getChild(Geonet.SearchResult.BBOX);
    Element westBL = elData.getChild(Geonet.SearchResult.WEST_BL);
    Element southBL = elData.getChild(Geonet.SearchResult.SOUTH_BL);
    Element eastBL = elData.getChild(Geonet.SearchResult.EAST_BL);
    Element northBL = elData.getChild(Geonet.SearchResult.NORTH_BL);
   
    if (bbox != null && westBL == null && southBL == null && eastBL == null && northBL == null) {
      String bounds[] = bbox.getText().split(",");
      if (bounds.length == 4) {
        elData.addContent(new Element(Geonet.SearchResult.WEST_BL).addContent(bounds[0]));
        elData.addContent(new Element(Geonet.SearchResult.SOUTH_BL).addContent(bounds[1]));
        elData.addContent(new Element(Geonet.SearchResult.EAST_BL).addContent(bounds[2]));
        elData.addContent(new Element(Geonet.SearchResult.NORTH_BL).addContent(bounds[3]));
      }
    }
   
    // possibly close old searcher
    UserSession  session     = context.getUserSession();
    Object oldSearcher = session.getProperty(Geonet.Session.SEARCH_RESULT);
   
     if (oldSearcher != null)
       if (oldSearcher instanceof LuceneSearcher)
         ((LuceneSearcher)oldSearcher).close();
   
    // possibly close old selection
    SelectionManager oldSelection = (SelectionManager)session.getProperty(Geonet.Session.SELECTED_RESULT);
   
    if (oldSelection != null){
      oldSelection.close();
    }
   

    // perform the search and save search query into session
    MetaSearcher searcher;

    context.info("Creating searchers");

    if (remotesearcher = searchMan.newSearcher(SearchManager.Z3950,  Geonet.File.SEARCH_Z3950_CLIENT);
    else        searcher = searchMan.newSearcher(SearchManager.LUCENE, Geonet.File.SEARCH_LUCENE);

    searcher.search(context, elData, _config);
    if (remote && (searcher.getSize() == 0)) { // do it again for Z3950
      searcher.search(context, elData, _config);
    }
View Full Code Here

   *
   */
  public Element exec(Element params, ServiceContext context) throws Exception {
    GeonetContext gc = (GeonetContext) context.getHandlerContext(Geonet.CONTEXT_NAME);

    SearchManager searchMan = gc.getBean(SearchManager.class);

    Element elData  = SearchDefaults.getDefaultSearch(context, params);
    String  sRemote = elData.getChildText(Geonet.SearchResult.REMOTE);
    boolean remote  = sRemote != null && sRemote.equals(Geonet.Text.ON);

    // possibly close old searcher
    UserSession  session     = context.getUserSession();
   
    // perform the search and save search result into session
    MetaSearcher searcher;
    context.info("Creating searchers");
   
        if(remote) {
      searcher = searchMan.newSearcher(SearchManager.Z3950,  Geonet.File.SEARCH_Z3950_CLIENT);
        } else {
      searcher = searchMan.newSearcher(SearchManager.LUCENE, Geonet.File.SEARCH_LUCENE);
        }
   
    try {
     
      // Check is user asked for summary only without building summary
View Full Code Here

    context.info("Creating searcher");

    Element       params = buildParams(par);
    ServiceConfig config = new ServiceConfig();

    SearchManager searchMan = gc.getBean(SearchManager.class);
    MetaSearcher  searcher  = searchMan.newSearcher(SearchManager.LUCENE, Geonet.File.SEARCH_LUCENE);

    searcher.search(context, params, config);

    params.addContent(new Element("from").setText("1"));
    params.addContent(new Element("to").setText(searcher.getSize() +""));
View Full Code Here

  public Element exec(Element params, ServiceContext context) throws Exception
  {
    GeonetContext gc = (GeonetContext) context.getHandlerContext(Geonet.CONTEXT_NAME);

    SearchManager searchMan = gc.getBean(SearchManager.class);

    // possibly close old searcher
    UserSession  session     = context.getUserSession();
    Object oldSearcher = session.getProperty(Geonet.Session.SEARCH_RESULT);

    if (oldSearcher != null)
      if (oldSearcher instanceof LuceneSearcher)
        ((LuceneSearcher)oldSearcher).close();

    // perform the search and save search result into session

    context.info("Creating UnusedSearcher");

    MetaSearcher searcher = searchMan.newSearcher(SearchManager.UNUSED, Geonet.File.SEARCH_LUCENE);

    searcher.search(context, params, null);
    session.setProperty(Geonet.Session.SEARCH_RESULT, searcher);

    context.info("Getting unused summary");
View Full Code Here

  public Element exec(Element params, ServiceContext context) throws Exception
  {
    GeonetContext gc = (GeonetContext) context.getHandlerContext(Geonet.CONTEXT_NAME);

    SearchManager searchMan = gc.getBean(SearchManager.class);
   
    boolean info = searchMan.optimizeIndex();

    Element elResp = new Element(Jeeves.Elem.RESPONSE);
    elResp.addContent(new Element("status").setText((info?"true":"false")));
   
    return elResp;
View Full Code Here

      xlinks = rebuildXLinkIndex.equals("yes");
    }

    GeonetContext gc = (GeonetContext) context.getHandlerContext(Geonet.CONTEXT_NAME);

    SearchManager searchMan = gc.getBean(SearchManager.class);
   
    boolean info = searchMan.rebuildIndex(context, xlinks, reset, fromSelection);

    Element elResp = new Element(Jeeves.Elem.RESPONSE);
    elResp.addContent(new Element("status").setText((info?"true":"false")));
   
    return elResp;
View Full Code Here

    }

    // fast search to see if any records are present that use this schema
    ServiceConfig config = new ServiceConfig();

    SearchManager searchMan = gc.getBean(SearchManager.class);
    Element searchParams = new Element("parameters")
    searchParams.addContent(new Element("_schema").setText(schema));

     MetaSearcher  searcher  = searchMan.newSearcher(SearchManager.LUCENE, Geonet.File.SEARCH_LUCENE);
    try {
       searcher.search(context, searchParams, config);
      int results = searcher.getSize();
      if (results == 0) { // check for templates
        searchParams.addContent(new Element("_isTemplate").setText("y"));
View Full Code Here

    @Test
    public void testDeleteBatchMetadata() throws Exception {
        ServiceContext context = createServiceContext();
        loginAsAdmin(context);

        final SearchManager searchManager = context.getBean(SearchManager.class);
        final long startMdCount = _metadataRepository.count();
        final String lang = "eng";
        final int startIndexDocs = numDocs(searchManager, lang);

        int md1 = importMetadata(this, context);
View Full Code Here

        if(Log.isDebugEnabled(Geonet.CSW_SEARCH))
            Log.debug(Geonet.CSW_SEARCH, "after remapfields:\n"+ Xml.getString(luceneExpr));
       
        GeonetContext gc = (GeonetContext) context.getHandlerContext(Geonet.CONTEXT_NAME);
        SearchManager sm = gc.getBean(SearchManager.class);
        IndexAndTaxonomy indexAndTaxonomy = null;
        try {
            if (luceneExpr != null) {
                convertPhrases(luceneExpr);
                if (Log.isDebugEnabled(Geonet.CSW_SEARCH))
                    Log.debug(Geonet.CSW_SEARCH, "after convertphrases:\n" + Xml.getString(luceneExpr));
            }
            _lang = LuceneSearcher.determineLanguage(context, filterExpr, sm.getSettingInfo());

            indexAndTaxonomy = sm.getIndexReader(_lang.presentationLanguage, _searchToken);
            Log.debug(Geonet.CSW_SEARCH, "Found searcher with " + indexAndTaxonomy.version + " comparing with " + _searchToken);
            if (_searchToken != -1L && indexAndTaxonomy.version != _searchToken) {
                throw new SearchExpiredEx("Search has expired/timed out - start a new search");
            }
            _searchToken = indexAndTaxonomy.version;
            GeonetworkMultiReader reader = indexAndTaxonomy.indexReader;
            return performSearch(context, luceneExpr, filterExpr, filterVersion, sort, resultType, startPosition, maxRecords,
                    maxHitsInSummary, cswServiceSpecificContraint, reader, indexAndTaxonomy.taxonomyReader);
        } catch (Exception e) {
      Log.error(Geonet.CSW_SEARCH, "Error while searching metadata ");
      Log.error(Geonet.CSW_SEARCH, "  (C) StackTrace:\n" + Util.getStackTrace(e));
      throw new NoApplicableCodeEx("Raised exception while searching metadata : " + e);
        } finally {
            try {
                if (indexAndTaxonomy != null) {
                    sm.releaseIndexReader(indexAndTaxonomy);
                }
            } catch (Exception ex) {
                // eat it as it probably doesn't matter,
                // but say what happened anyway
                Log.error(Geonet.CSW_SEARCH, "Error while releasing index searcher ", ex);
View Full Code Here

TOP

Related Classes of org.fao.geonet.kernel.search.SearchManager$Spatial

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.