/
aprogrammer
/
yessql
Обзор
Документация
Войти
/
aprogrammer
/
yessql
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
beta13
samples/YesSql.Samples.FullText/Program.cs
66 строк
2 KB
Sebastien Ros
Sharing db connection with storage
20 сен 2016, 01:39
20 сен 2016, 01:39
52f2b29
Код
Авторство
О чём код?
using System; using Microsoft.Data.Sqlite; using YesSql.Core.Services; using YesSql.Samples.FullText.Indexes; using YesSql.Samples.FullText.Models; using YesSql.Storage.InMemory; namespace YesSql.Samples.FullText { internal class Program { private static void Main(string[] args) { var configuration = new Configuration { ConnectionFactory = new DbConnectionFactory<SqliteConnection>(@"Data Source=:memory:", true), DocumentStorageFactory = new InMemoryDocumentStorageFactory() }; var store = new Store(configuration); store.InitializeAsync().Wait(); using (var session = store.CreateSession()) { session.ExecuteMigration(x => x .CreateReduceIndexTable(nameof(ArticleByWord), table => table .Column<int>("Count") .Column<string>("Word") ) ); } // register available indexes store.RegisterIndexes<ArticleIndexProvider>(); // creating articles using (var session = store.CreateSession()) { session.Save(new Article { Content = "This is a white fox" }); session.Save(new Article { Content = "This is a brown cat" }); session.Save(new Article { Content = "This is a pink elephant" }); session.Save(new Article { Content = "This is a white tiger" }); } using (var session = store.CreateSession()) { Console.WriteLine("Simple term: 'white'"); var simple = session.QueryAsync<Article, ArticleByWord>().Where(a => a.Word == "white").List().Result; foreach (var article in simple) { Console.WriteLine(article.Content); } Console.WriteLine("Boolean query: 'white or fox or pink'"); var boolQuery = session.QueryAsync<Article, ArticleByWord>().Where(a => a.Word.IsIn(new[] { "white", "fox", "pink" })).List().Result; foreach (var article in boolQuery) { Console.WriteLine(article.Content); } } } } }