Ejemplo n.º 1
0
        /// <summary>
        /// Avvio ricerca fulltext nel documentale hummingbird
        /// </summary>
        /// <param name="infoUtente"></param>
        /// <param name="context"></param>
        /// <returns></returns>
        private string[] SearchHummingbird(InfoUtente infoUtente,
                                           DocsPaVO.ricerche.FullTextSearchContext context)
        {
            string[] retValue = new string[0];

            //Creiamo l'oggetto per la ricerca
            PCDCLIENTLib.PCDSearch objSearch = new PCDCLIENTLib.PCDSearchClass();

            // Impostazione DST e libreria, indispensabili per la connessione ad Hummingbird
            objSearch.SetDST(infoUtente.dst);
            objSearch.AddSearchLib(this.GetLibreria(infoUtente.idAmministrazione));
            // Aggiunta clausola from
            objSearch.SetSearchObject("DEF_PROF");

            //Aggiungiamo la clausola where
            objSearch.AddSearchCriteria("FULLTEXT_CONTENT_PROFILE", context.TextToSearch);

            //Aggiungiamo la clausola where
            objSearch.AddReturnProperty("DOCNUM");
            objSearch.AddReturnProperty("DOCNAME");
            objSearch.AddReturnProperty("SYSTEM_ID");
            objSearch.AddOrderByProperty("DOCNUM", 0);

            int maxRows = this.GetMaxRows();

            if (maxRows > 0)
            {
                objSearch.SetMaxRows(maxRows);
            }

            //Eseguiamo la ricerca
            objSearch.Execute();

            int numDocs = 0;

            if (objSearch.ErrNumber != 0)
            {
            }
            else
            {
                numDocs = objSearch.GetRowsFound();

                if (numDocs != 0)
                {
                    // Reperimento chiavi di ricerca
                    retValue = this.GetSearchDocNumbers(objSearch);
                }
            }

            objSearch.ReleaseResults();
            objSearch = null;

            return(retValue);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Ricerca fulltext
        /// </summary>
        /// <param name="infoUtente"></param>
        /// <param name="context">Informazioni di contesto per la ricerca</param>
        /// <returns></returns>
        public ArrayList RicercaFT(InfoUtente infoUtente, ref DocsPaVO.ricerche.FullTextSearchContext context)
        {
            string[] resultList = null;

            if (context.SearchResultList != null && context.SearchResultList.Length > 0)
            {
                // Ricerca già effettuata, reperimento dall'oggetto di contesto
                // dei risultati precedenti evitando così una dispendiosa
                // chiamata al sistema documentale
                resultList = context.SearchResultList;
            }
            else
            {
                // Prima ricerca, chiamata al documentale
                resultList = this.SearchHummingbird(infoUtente, context);

                context.SearchResultList = resultList;
            }

            if (resultList.Length > 0)
            {
                // Estrazione dei soli id relativi alla pagina richiesta
                resultList = this.ExtractPageDocNumbers(resultList, context.RequestedPageNumber);
            }

            // Calcolo numero pagine e record estratti
            int numDocs    = context.SearchResultList.Length;
            int numTotPage = (numDocs / PAGE_SIZE);

            if (numTotPage * PAGE_SIZE < numDocs)
            {
                numTotPage++;
            }

            context.TotalPageNumber  = numTotPage;
            context.TotalRecordCount = numDocs;

            // Reperimento dettagli sui documenti
            return(this.GetListaDocumenti(resultList, infoUtente));
        }
Ejemplo n.º 3
0
 /// <summary>
 /// Restituisce la lista dei version_id dei documenti trovati nella ricerca fulltext
 /// Metodo primitivo da raffinare
 /// </summary>
 /// <param name="context"></param>
 /// <returns></returns>
 public ArrayList simpleFullTextSearch(ref DocsPaVO.ricerche.FullTextSearchContext context)
 {
     return(this.Instance.simpleFullTextSearch(ref context));
 }