public void DeleteAllDocuments(BaristaIndexDefinition indexDefinition) { ExecuteRestRequest("DeleteAllDocuments", Method.POST, request => request.AddBody(new { indexDefinition })); }
public void Shutdown(BaristaIndexDefinition indexDefinition) { ExecuteRestRequest("Shutdown", Method.POST, request => request.AddBody(new { indexDefinition })); }
public int SearchResultCount(BaristaIndexDefinition indexDefinition, SearchArguments arguments) { if (arguments == null) { arguments = new SearchArguments(); } try { var index = GetOrAddIndex(indexDefinition, true); var searchParams = GetLuceneSearchParams(arguments); IndexSearcher indexSearcher; using (index.GetSearcher(out indexSearcher)) { if (searchParams.Skip.HasValue == false) { var hits = indexSearcher.Search(searchParams.Query, searchParams.Filter, searchParams.MaxResults, searchParams.Sort); return(hits.ScoreDocs.Count()); } else { var hits = indexSearcher.Search(searchParams.Query, searchParams.Filter, searchParams.MaxResults + searchParams.Skip.Value, searchParams.Sort); return(hits.ScoreDocs .Skip(searchParams.Skip.Value) .Take(searchParams.MaxResults) .Count()); } } } catch (Exception ex) { throw new FaultException(ex.Message); } }
public void IndexJsonDocument(BaristaIndexDefinition indexDefinition, string documentId, object docObject, object metadata, IEnumerable <FieldOptions> fieldOptions) { try { using (var searchClient = GetSearchClient()) { var document = new JsonDocumentDto { DocumentId = documentId, DataAsJson = JsonConvert.SerializeObject(docObject, Formatting.Indented, SerializerSettings), }; if (metadata != null) { document.MetadataAsJson = JsonConvert.SerializeObject(metadata, Formatting.Indented, SerializerSettings); } if (fieldOptions != null) { document.FieldOptions = fieldOptions; } searchClient.IndexJsonDocument(indexDefinition, document); } } catch (CommunicationObjectFaultedException ex) { if (ex.InnerException != null) { throw ex.InnerException; } throw; } }
public void IndexJsonDocuments(BaristaIndexDefinition indexDefinition, IEnumerable <JsonDocumentDto> documents) { ExecuteRestRequest("IndexJsonDocuments", Method.POST, request => request.AddBody(new { indexDefinition, documents })); }
public void DeleteDocuments(BaristaIndexDefinition indexDefinition, IEnumerable <string> documentIds) { ExecuteRestRequest("DeleteDocuments", Method.POST, request => request.AddBody(new { indexDefinition, documentIds })); }
public void SetFieldOptions(BaristaIndexDefinition indexDefinition, IEnumerable <FieldOptions> fieldOptions) { ExecuteRestRequest("SetFieldOptions", Method.POST, request => request.AddBody(new { indexDefinition, fieldOptions })); }
public void IndexJsonDocument(BaristaIndexDefinition indexDefinition, JsonDocumentDto document) { ExecuteRestRequest("IndexJsonDocument", Method.POST, request => request.AddBody(new { indexDefinition, document })); }
public static void CloseIndexWriter(BaristaIndexDefinition indexDefinition, bool waitForMerges) { Index index; if (Indexes.TryRemove(indexDefinition, out index)) { index.Dispose(); } }
public ICollection <string> GetFieldNames(BaristaIndexDefinition indexDefinition) { var response = ExecuteRestRequest <Collection <string> >("GetFieldNames", Method.POST, request => request.AddBody(new { indexDefinition })); return(response.Data); }
public bool DoesIndexExist(BaristaIndexDefinition indexDefinition) { var response = ExecuteRestRequest <bool>("DoesIndexExist", Method.POST, request => request.AddBody(new { indexDefinition })); return(response.Data); }
public int SearchResultCount(BaristaIndexDefinition indexDefinition, SearchArguments arguments) { var response = ExecuteRestRequest <int>("SearchResultCount", Method.POST, request => request.AddBody(new { indexDefinition, arguments })); return(response.Data); }
public IList <FacetedSearchResult> FacetedSearch(BaristaIndexDefinition indexDefinition, SearchArguments arguments) { var response = ExecuteRestRequest <List <FacetedSearchResult> >("FacetedSearch", Method.POST, request => request.AddBody(new { indexDefinition, arguments })); return(response.Data); }
public JsonDocumentDto Retrieve(BaristaIndexDefinition indexDefinition, string documentId) { var response = ExecuteRestRequest <JsonDocumentDto>("Retrieve", Method.POST, request => request.AddBody(new { indexDefinition, documentId })); return(response.Data); }
public ICollection <string> GetFieldNames(BaristaIndexDefinition indexDefinition) { var index = GetOrAddIndex(indexDefinition, true); IndexSearcher indexSearcher; using (index.GetSearcher(out indexSearcher)) { var fieldNames = indexSearcher.IndexReader.GetFieldNames(IndexReader.FieldOption.ALL); return(fieldNames); } }
public Explanation Explain(BaristaIndexDefinition indexDefinition, Query query, int documentId) { var response = ExecuteRestRequest <Explanation>("Explain", Method.POST, request => request.AddBody(new { indexDefinition, query, documentId })); return(response.Data); }
public void Shutdown(BaristaIndexDefinition indexDefinition) { try { CloseIndexWriter(indexDefinition, true); } catch (Exception ex) { throw new FaultException(ex.Message); } }
/// <summary> /// Utility method to retrieve the specifed index, optionally creating the index if it is missing. /// </summary> /// <param name="indexDefinition"></param> /// <param name="createIfMissing"></param> /// <returns></returns> protected Index GetOrAddIndex(BaristaIndexDefinition indexDefinition, bool createIfMissing) { //Index name is case insensitive. indexDefinition.IndexName = indexDefinition.IndexName.ToLowerInvariant(); return(Indexes.GetOrAdd(indexDefinition, key => { var targetDirectory = GetLuceneDirectoryFromIndexDefinition(indexDefinition); var luceneIndexDefinition = new IndexDefinition(); if (!IndexReader.IndexExists(targetDirectory)) { if (createIfMissing == false) { throw new InvalidOperationException("Index does not exist: " + targetDirectory); } WriteIndexVersion(targetDirectory); //creating index structure if we need to new IndexWriter(targetDirectory, DummyAnalyzer, IndexWriter.MaxFieldLength.UNLIMITED).Dispose(); } else { if (!EnsureIndexVersionMatches(luceneIndexDefinition.Name, targetDirectory)) { CheckIndexAndRecover(targetDirectory, indexDefinition.IndexName); targetDirectory.DeleteFile("writing-to-index.lock"); WriteIndexVersion(targetDirectory); } if (targetDirectory.FileExists("write.lock")) // force lock release, because it was still open when we shut down { IndexWriter.Unlock(targetDirectory); // for some reason, just calling unlock doesn't remove this file targetDirectory.DeleteFile("write.lock"); } if (targetDirectory.FileExists("writing-to-index.lock")) // we had an unclean shutdown { //if (configuration.ResetIndexOnUncleanShutdown) // throw new InvalidOperationException("Rude shutdown detected on: " + indexDirectory); CheckIndexAndRecover(targetDirectory, indexDefinition.IndexName); targetDirectory.DeleteFile("writing-to-index.lock"); } } var simpleIndex = new SimpleIndex(targetDirectory, "DefaultIndex", luceneIndexDefinition); return simpleIndex; })); }
public string Highlight(BaristaIndexDefinition indexDefinition, Query query, int documentId, string fieldName, int fragCharSize) { var response = ExecuteRestRequest("Highlight", Method.POST, request => request.AddBody(new { indexDefinition, query, documentId, fieldName, fragCharSize })); return(response.Content); }
public Explanation Explain(BaristaIndexDefinition indexDefinition, Barista.Search.Query query, int docId) { var lQuery = Barista.Search.Query.ConvertQueryToLuceneQuery(query); Explanation explanation; var index = GetOrAddIndex(indexDefinition, true); IndexSearcher indexSearcher; using (index.GetSearcher(out indexSearcher)) { var lexplanation = indexSearcher.Explain(lQuery, docId); explanation = Explanation.ConvertLuceneExplanationToExplanation(lexplanation); } return(explanation); }
public IList <FacetedSearchResult> FacetedSearch(BaristaIndexDefinition indexDefinition, SearchArguments arguments) { try { using (var searchClient = GetSearchClient()) { return(searchClient.FacetedSearch(indexDefinition, arguments)); } } catch (CommunicationObjectFaultedException ex) { if (ex.InnerException != null) { throw ex.InnerException; } throw; } }
JsonDocumentDto Retrieve(BaristaIndexDefinition indexDefinition, string documentId) { try { using (var searchClient = GetSearchClient()) { return(searchClient.Retrieve(indexDefinition, documentId)); } } catch (CommunicationObjectFaultedException ex) { if (ex.InnerException != null) { throw ex.InnerException; } throw; } }
public void IndexJsonDocuments(BaristaIndexDefinition indexDefinition, IEnumerable <JsonDocumentDto> documents) { try { using (var searchClient = GetSearchClient()) { searchClient.IndexJsonDocuments(indexDefinition, documents); } } catch (CommunicationObjectFaultedException ex) { if (ex.InnerException != null) { throw ex.InnerException; } throw; } }
public void IndexDocument(BaristaIndexDefinition indexDefinition, string documentId, DocumentDto document) { try { using (var searchClient = GetSearchClient()) { searchClient.IndexDocument(indexDefinition, documentId, document); } } catch (CommunicationObjectFaultedException ex) { if (ex.InnerException != null) { throw ex.InnerException; } throw; } }
public string Highlight(BaristaIndexDefinition indexDefinition, Query query, int documentId, string fieldName, int fragCharSize) { try { using (var searchClient = GetSearchClient()) { return(searchClient.Highlight(indexDefinition, query, documentId, fieldName, fragCharSize)); } } catch (CommunicationObjectFaultedException ex) { if (ex.InnerException != null) { throw ex.InnerException; } throw; } }
public ICollection <string> GetFieldNames(BaristaIndexDefinition indexDefinition) { try { using (var searchClient = GetSearchClient()) { return(searchClient.GetFieldNames(indexDefinition)); } } catch (CommunicationObjectFaultedException ex) { if (ex.InnerException != null) { throw ex.InnerException; } throw; } }
public bool DoesIndexExist(BaristaIndexDefinition indexDefinition) { try { using (var searchClient = GetSearchClient()) { return(searchClient.DoesIndexExist(indexDefinition)); } } catch (CommunicationObjectFaultedException ex) { if (ex.InnerException != null) { throw ex.InnerException; } throw; } }
public void SetFieldOptions(BaristaIndexDefinition indexDefinition, IEnumerable <FieldOptions> fieldOptions) { try { using (var searchClient = GetSearchClient()) { searchClient.SetFieldOptions(indexDefinition, fieldOptions); } } catch (CommunicationObjectFaultedException ex) { if (ex.InnerException != null) { throw ex.InnerException; } throw; } }
public void Shutdown(BaristaIndexDefinition indexDefinition) { try { using (var searchClient = GetSearchClient()) { searchClient.Shutdown(indexDefinition); } } catch (CommunicationObjectFaultedException ex) { if (ex.InnerException != null) { throw ex.InnerException; } throw; } }
public Explanation Explain(BaristaIndexDefinition indexDefinition, Query query, int documentId) { try { using (var searchClient = GetSearchClient()) { return(searchClient.Explain(indexDefinition, query, documentId)); } } catch (CommunicationObjectFaultedException ex) { if (ex.InnerException != null) { throw ex.InnerException; } throw; } }