/// <summary> /// Adds a file index to ES /// </summary> /// <param name="fileData">The file to add</param> private void AddNew(IFileData fileData) { string requestUrl = GetRequestUrl(fileData); var elasticSearchNetwork = new ElasticSearchNetwork(requestUrl, "PUT", fileData.ToString()); elasticSearchNetwork.SendAndGetResponse(); }
/// <summary> /// Adds the new path to the indexed path of a file /// </summary> /// <param name="fileData">The file to update</param> private void UpdatePath(IFileData fileData) { string requestUrl = GetRequestUrl(fileData) + "/_update"; var paths = GetCurrentPath(fileData); paths.AddRange(fileData.Path); var pathsString = JsonConvert.SerializeObject(paths.Distinct()); var requestText = String.Format("{{\"doc\":{{\"Path\":{0}}}}}", pathsString); var elasticSearchNetwork = new ElasticSearchNetwork(requestUrl, "POST", requestText); elasticSearchNetwork.SendAndGetResponse(); }
/// <summary> /// Gets the current path of an indexed file /// </summary> /// <param name="fileData">The file to get the current path of</param> /// <returns>A list of the Current paths</returns> private List <string> GetCurrentPath(IFileData fileData) { string requestUrl = GetRequestUrl(fileData); var elasticSearchNetwork = new ElasticSearchNetwork(requestUrl, "GET"); var responseText = elasticSearchNetwork.SendAndGetResponse(); dynamic responseJson = JObject.Parse(responseText); var paths = new List <string>(); foreach (var path in responseJson._source.Path) { paths.Add(path.Value); } return(paths); }
/// <summary> /// Retrives a file from ES by it's checksum /// </summary> /// <param name="checkSum">File's checksum</param> /// <returns>dynamic variable that represents the file</returns> public dynamic Retreive(string checkSum) { string query = String.Format(@"{{ ""query"": {{ ""query_string"": {{ ""query"": ""{0}"", ""fields"": [""_id""] }} }} }}", checkSum); var elasticSearchNetwork = new ElasticSearchNetwork("http://" + ServerInfo + "/" + "_search", "POST", query); dynamic result = JObject.Parse(elasticSearchNetwork.SendAndGetResponse()); if (result.hits.total.Value > 0) { return(result.hits.hits[0]); } return(null); }
/// <summary> /// Retrives a file from ES by it's checksum /// </summary> /// <param name="checkSum">File's checksum</param> /// <returns>dynamic variable that represents the file</returns> public dynamic Retreive(string checkSum) { string query =String.Format(@"{{ ""query"": {{ ""query_string"": {{ ""query"": ""{0}"", ""fields"": [""_id""] }} }} }}",checkSum); var elasticSearchNetwork = new ElasticSearchNetwork("http://" + ServerInfo+"/" +"_search", "POST",query); dynamic result=JObject.Parse(elasticSearchNetwork.SendAndGetResponse()); if (result.hits.total.Value > 0) { return result.hits.hits[0]; } return null; }
/// <summary> /// Adds a file index to ES /// </summary> /// <param name="fileData">The file to add</param> private void AddNew(IFileData fileData) { string requestUrl = GetRequestUrl(fileData); var elasticSearchNetwork=new ElasticSearchNetwork(requestUrl,"PUT",fileData.ToString()); elasticSearchNetwork.SendAndGetResponse(); }
/// <summary> /// Adds the new path to the indexed path of a file /// </summary> /// <param name="fileData">The file to update</param> private void UpdatePath(IFileData fileData) { string requestUrl = GetRequestUrl(fileData) + "/_update"; var paths = GetCurrentPath(fileData); paths.AddRange(fileData.Path); var pathsString = JsonConvert.SerializeObject(paths.Distinct()); var requestText = String.Format("{{\"doc\":{{\"Path\":{0}}}}}",pathsString); var elasticSearchNetwork = new ElasticSearchNetwork(requestUrl, "POST", requestText); elasticSearchNetwork.SendAndGetResponse(); }
/// <summary> /// Gets the current path of an indexed file /// </summary> /// <param name="fileData">The file to get the current path of</param> /// <returns>A list of the Current paths</returns> private List<string> GetCurrentPath(IFileData fileData) { string requestUrl = GetRequestUrl(fileData); var elasticSearchNetwork = new ElasticSearchNetwork(requestUrl, "GET"); var responseText = elasticSearchNetwork.SendAndGetResponse(); dynamic responseJson = JObject.Parse(responseText); var paths = new List<string>(); foreach (var path in responseJson._source.Path) { paths.Add(path.Value); } return paths; }