public IIndexBuilder CreateBuilder(IIndexName name)
        {
            //NOTE: Choice of index storage from:
            //      - PersistentMetadataList
            //      - PersistentMetadataBtree

            return(new PersistentBuilder(Convert(name)));
        }
Exemple #2
0
        public static IFullTextIndex AddToIndex(IIndexName indexName, string text)
        {
            using (var builder = IndexFactory.CreateBuilder(indexName))
            {
                builder.Start();
                builder.AddText(text, null);
                builder.StopAndWait();
            }

            return(IndexFactory.OpenIndex(indexName));
        }
Exemple #3
0
        private static IIndexTypeFactory GetFactoryForName(IIndexName name)
        {
            if (name == null)
            {
                throw new ArgumentNullException(nameof(name));
            }

            if (!indexTypes.TryGetValue(name.GetType(), out var factory))
            {
                throw new InvalidOperationException($"Invalid type {name.GetType().Name}");
            }

            return(factory);
        }
Exemple #4
0
        public static IFullTextIndex PrepareIndexForSearch(IIndexName indexName)
        {
            using (var builder = IndexFactory.CreateBuilder(indexName))
            {
                builder.Start();
                builder.AddText("Hello World!", null);
                builder.AddText("Petro Petrolium Petrol", null);
                builder.AddText("This is test document for search unit tests", null);
                builder.AddText("This test document is used for search operators", null);
                builder.AddText("This full-text search only supports boolean operators: and, or", null);
                builder.AddText("Programming is very exciting. Programs can help. This is fantastic!!!", null);
                builder.StopAndWait();
            }

            return(IndexFactory.OpenIndex(indexName));
        }
        private static PersistentIndexName Convert(IIndexName name)
        {
            if (name == null)
            {
                throw new ArgumentNullException(nameof(name));
            }

            var result = name as PersistentIndexName;

            if (result == null)
            {
                throw new InvalidOperationException($"Invalid type {name.GetType().Name}");
            }

            return(result);
        }
Exemple #6
0
        private static InMemoryIndexName InMemoryName(IIndexName name)
        {
            if (name == null)
            {
                throw new ArgumentNullException(nameof(name));
            }

            var result = name as InMemoryIndexName;

            if (result == null)
            {
                throw new InvalidOperationException($"Invalid type {name.GetType().Name}");
            }

            return(result);
        }
Exemple #7
0
        public static IFullTextIndex OpenIndex(IIndexName name)
        {
            IIndexTypeFactory factory = GetFactoryForName(name);

            return(factory.OpenIndex(name));
        }
Exemple #8
0
        public static IIndexBuilder CreateBuilder(IIndexName name)
        {
            IIndexTypeFactory factory = GetFactoryForName(name);

            return(factory.CreateBuilder(name));
        }
 public IFullTextIndex OpenIndex(IIndexName name)
 {
     return(new PersistentIndex(Convert(name)));
 }
Exemple #10
0
 public IIndexBuilder CreateBuilder(IIndexName name)
 {
     return(new InMemoryBuilder(InMemoryName(name)));
 }
Exemple #11
0
 public IFullTextIndex OpenIndex(IIndexName name)
 {
     return(InMemoryName(name).Index);
 }