/// <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); }
/// <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)); }
/// <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)); }