public IEnumerable <Dictionary <string, IEnumerable <string> > > DigInformation(string question)
        {
            var diggingresult = default(IEnumerable <Dictionary <string, IEnumerable <string> > >);

            var querykey = string.Empty;
            var querys   = MiningCompiler.CompileQuerys(question);
            var matches  = new List <string>(Directory.GetFiles(Storagefolder));

            if (querys != null)
            {
                querykey = string.Join(".", new[] { querykey, $"{querys.Target} {string.Join(" or", querys?.Expressions)}" });
                querykey = querykey.GetHashCode().ToString();

                var cachefile = Path.Combine(Storagefolder, querykey, ".cache");
                matches = File.Exists(cachefile) ? new List <string>(File.ReadAllLines(cachefile)) : matches;

                if (matches != null && matches.Any())
                {
                    diggingresult = Enumerable.Empty <Dictionary <string, IEnumerable <string> > >();

                    //  Rückübersetzung der Treffer in Trefferdictionary
                    foreach (var match in matches)
                    {
                        var information = RetrieveInformation(match);
                        //if(IsMatchingInformation(querys, information))
                        //{
                        //    diggingresult = diggingresult.Concat(new[] { information });
                        //}
                    }
                }
            }

            return(diggingresult);
        }
Esempio n. 2
0
        private FilterDefinition <BsonDocument> ComposeFilter(string question)
        {
            var filter = MiningCompiler.ComposeFilter(question);

            return(filter?.And?.ToMongoDatabaseFilter());
        }