public List <string> Filter(List <string> inputList, IProgramDatabase database) { if (inputList == null || inputList.Count == 0) { return(new List <string>()); } database.TryGetTokenDocumentIDs(Token, out var tokenDocumentIDs); inputList.RemoveAll(item => tokenDocumentIDs.Contains(item)); return(inputList); }
public List <string> Filter(List <string> inputList, IProgramDatabase database) { if (inputList == null || inputList.Count == 0) { return(new List <string>()); } if (database.TryGetTokenDocumentIDs(Token, out var tokenDocumentIDs)) { return(inputList.Intersect(tokenDocumentIDs).ToList()); } return(new List <string>()); }
public List <string> Filter(List <string> inputList, IProgramDatabase database) { if (inputList == null) { inputList = new List <string>(); } if (database.TryGetTokenDocumentIDs(Token, out var tokenDocuments)) { inputList = inputList.Union(tokenDocuments).ToList(); } return(inputList); }
/// <summary> /// Run given operators and make result. /// </summary> /// <param name="operators"> List of operators orderd by priority. </param> /// <param name="database"> The database of pgogram. </param> /// <returns> List of document ids. </returns> public List <string> RunOperators(List <IOperator> operators, IProgramDatabase database) { var result = new List <string>(); var firstOperatorIsAnd = operators.ElementAt(0) is And; for (int i = 0; i < operators.Count; i++) { IOperator op = operators.ElementAt(i); if (firstOperatorIsAnd) { op = new Or(op.Token); firstOperatorIsAnd = false; } result = op.Filter(result, database); } return(result); }
public SearcherTests() { var mockedDatabase = new Mock <IProgramDatabase>(); mockedDatabase = GeneralFunctions.SetupDatabaseTryGetTokenDocumentIDs( mockedDatabase, "test", new List <string> { "file1", "file2" }, true ); mockedDatabase = GeneralFunctions.SetupDatabaseTryGetTokenDocumentIDs( mockedDatabase, "test2", new List <string> { "file1", "file3" }, true ); database = mockedDatabase.Object; searcher = new Searcher(); }