Exemplo n.º 1
0
        public void WillFail()
        {
            using (var store = GetDocumentStore())
            {
                using (var session = store.OpenSession())
                {
                    session.Store(new TheArticle
                    {
                        Id        = "articles/1",
                        Heading   = "brickpile kicks ass",
                        MainIntro = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. In et tortor vulputate, congue felis non, iaculis erat. Maecenas pellentesque, nisl at blandit posuere, velit turpis vulputate tortor, tempor pellentesque nisl enim sit amet mi.",
                        MainBody  = "<p>Knark</p>\r\n<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. In et tortor vulputate, congue felis non, iaculis erat. Maecenas pellentesque, nisl at blandit posuere, velit turpis vulputate tortor, tempor pellentesque nisl enim sit amet mi. Duis scelerisque metus in massa dictum, quis varius libero malesuada. Maecenas semper vitae massa et auctor. Sed tortor est, pharetra et venenatis eu, viverra vel lacus. Quisque iaculis ligula id urna bibendum, efficitur vehicula felis gravida. Quisque nec tempor nisl, nec aliquet libero. In quis ultrices nisi, in fermentum arcu. Aenean vel pretium risus, nec congue dui. Vestibulum viverra maximus tristique. Cras eu nibh a enim vehicula laoreet. Morbi non suscipit mauris, et tincidunt lectus. Suspendisse felis elit, aliquam non vulputate a, sollicitudin vel ante. Cras nec urna ex.</p>\r\n<p>Fusce tincidunt, velit quis condimentum ullamcorper, lorem nulla interdum tellus, nec luctus lectus neque maximus turpis. Vestibulum dapibus est eget rhoncus molestie. Vestibulum ac sem sapien. Donec sodales justo eu diam elementum porttitor. Etiam posuere lorem in ornare molestie. Quisque sagittis eros id rhoncus ornare. Etiam ullamcorper nibh at urna porta, vitae ultricies urna facilisis. Donec semper sapien nec convallis fringilla. Maecenas a vulputate dolor. Donec elementum cursus lorem, sit amet tristique risus euismod et. Phasellus tincidunt quam felis, sit amet pretium lacus dapibus in. Etiam maximus varius dui, eget euismod ante fermentum ac. Aliquam iaculis varius sapien, rutrum aliquam nisi cursus ut. Nulla nec volutpat tellus.</p>\r\n<p>Donec porta, odio id finibus tristique, velit mauris mollis lacus, quis posuere ligula magna sed enim. Cras in fringilla orci. Nunc imperdiet hendrerit felis non fringilla. Vestibulum feugiat odio ac quam congue consectetur. Nunc iaculis mi dui, ut varius lorem gravida in. Fusce ac rhoncus nisl, a luctus magna. Donec et vehicula turpis. Duis consectetur eleifend tellus, in pulvinar arcu viverra at. In quis rhoncus risus. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam sit amet auctor nunc, nec scelerisque elit. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Nam nec erat tristique, lacinia ipsum porttitor, dictum nibh. Integer ut nulla a mauris scelerisque bibendum sed vitae tellus.</p>\r\n<p>Nullam ultrices dapibus sollicitudin. Nullam placerat, risus non convallis blandit, lacus diam fermentum eros, vel dapibus ex nisi et mi. Interdum et malesuada fames ac ante ipsum primis in faucibus. Duis pellentesque sagittis mattis. Fusce vel vestibulum mi. Sed ac turpis vitae urna imperdiet commodo vel vitae lacus. Maecenas vel semper tellus. Nunc tempus massa elit, ut sollicitudin leo aliquet et. Nulla tristique, tellus ut venenatis varius, arcu ligula luctus magna, id condimentum justo turpis eget nisi. Nullam et justo eget nulla sollicitudin rutrum. Aenean libero felis, hendrerit hendrerit diam nec, commodo bibendum ligula. Suspendisse id velit maximus, tincidunt dui quis, eleifend dolor. In dignissim sem quis leo venenatis, eget laoreet nibh lacinia. In id eros felis. Nullam cursus, ipsum eu semper volutpat, metus quam pulvinar metus, ut commodo lectus est non ipsum. Nullam consectetur turpis vulputate justo sollicitudin, eu tempor velit maximus.</p>\r\n<p>Curabitur lobortis rutrum dolor vitae semper. Praesent congue dolor et nisl commodo rutrum. Vestibulum malesuada sem odio, sed posuere nisl accumsan ac. Vestibulum vehicula, odio vitae placerat tristique, nisi massa rhoncus ante, at porttitor tellus nisl a lorem. Praesent pellentesque, urna sit amet ornare faucibus, risus tortor scelerisque nibh, eu sollicitudin tellus nibh sed nisl. Sed nec ipsum sem. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Etiam a ullamcorper erat. Nulla at porttitor ligula. Suspendisse eget ex bibendum, euismod dolor vel, sodales massa. Donec tempus maximus lacinia. Proin finibus quam vel ullamcorper semper. Duis nunc lectus, laoreet ut condimentum sed, pulvinar lacinia libero.</p>"
                    });
                    session.SaveChanges();
                }

                new The_Search().Execute(store);

                WaitForIndexing(store);

                using (var session = store.OpenSession())
                {
                    string q    = "lorem";
                    var    hits = session.Query <The_Search.Result, The_Search>()
                                  .Search(x => x.Query, q, escapeQueryOptions: EscapeQueryOptions.AllowAllWildcards)
                                  .As <TheArticle>();


                    SuggestionQueryResult suggestionResult = hits.Suggest();

                    Assert.False(suggestionResult.Suggestions.Contains(q));
                }
            }
        }
        public HowToWorkWithSuggestionQuery()
        {
            using (var store = new DocumentStore())
            {
                #region suggest_2
                // Get suggestions for 'johne' using 'FullName' field in 'Users/ByFullName' index
                SuggestionQueryResult result = store
                                               .DatabaseCommands
                                               .Suggest(
                    "Users/ByFullName",
                    new SuggestionQuery
                {
                    Field          = "FullName",
                    Term           = "johne",
                    MaxSuggestions = 10
                });

                Console.WriteLine("Did you mean?");

                foreach (string suggestion in result.Suggestions)
                {
                    Console.WriteLine("\t{0}", suggestion);
                }

                // Did you mean?
                //		john
                //		jones
                //		johnson
                #endregion
            }
        }
Exemplo n.º 3
0
        /// <summary>
        /// Executes the specified command.
        /// </summary>
        /// <param name="command">The command.</param>
        /// <param name="scope">The scope.</param>
        public async Task <Result <SearchDriversResult> > Execute(SearchDriversCommand command, ICommandScope scope)
        {
            using (this._searchTimer.NewContext(command.SearchText))
            {
                IList <Driver> result = await this
                                        .ExecuteActualQueryAsync(command.SearchText, command.Skip, command.Take)
                                        .WithCurrentCulture();

                if (result.Any())
                {
                    return(Result.AsSuccess(SearchDriversResult.WithDrivers(result)));
                }

                SuggestionQueryResult suggestions = await this._documentSession.Query <DocumentsForSearch.Result, DocumentsForSearch>()
                                                    .Search(f => f.SearchText, command.SearchText)
                                                    .SuggestAsync()
                                                    .WithCurrentCulture();

                if (suggestions.Suggestions.Count() == 1)
                {
                    result = await this
                             .ExecuteActualQueryAsync(suggestions.Suggestions.First(), command.Skip, command.Take)
                             .WithCurrentCulture();

                    return(Result.AsSuccess(SearchDriversResult.WithDrivers(result)));
                }

                if (suggestions.Suggestions.Any())
                {
                    return(Result.AsSuccess(SearchDriversResult.WithSuggestions(suggestions.Suggestions)));
                }

                return(Result.AsSuccess(SearchDriversResult.WithNoResults()));
            }
        }
Exemplo n.º 4
0
        public ActionResult Search(string term)
        {
            IRavenQueryable <RecentPopularTags.ReduceResult> query = DocumentSession
                                                                     .Query <RecentPopularTags.ReduceResult, RecentPopularTags>()
                                                                     .Where(x => x.Tag == term);

            // Does this tag exist?
            RecentPopularTags.ReduceResult tag = query.FirstOrDefault();

            var results = new List <string>();

            if (tag != null)
            {
                results.Add(tag.Tag);
            }
            else
            {
                // No exact match .. so lets use Suggest.
                SuggestionQueryResult suggestedTags = query.Suggest();
                if (suggestedTags.Suggestions.Length > 0)
                {
                    results.AddRange(suggestedTags.Suggestions);
                }
            }

            return(Json(results, JsonRequestBehavior.AllowGet));
        }
        public HowToPerformQueriesLazily()
        {
            using (var store = new DocumentStore())
            {
                using (var session = store.OpenSession())
                {
                    #region lazy_2
                    Lazy <IEnumerable <Employee> > employeesLazy = session
                                                                   .Query <Employee>()
                                                                   .Where(x => x.FirstName == "Robert")
                                                                   .Lazily();

                    IEnumerable <Employee> employees = employeesLazy.Value;                    // query will be executed here
                    #endregion
                }

                using (var session = store.OpenSession())
                {
                    #region lazy_5
                    Lazy <int> countLazy = session
                                           .Query <Employee>()
                                           .Where(x => x.FirstName == "Robert")
                                           .CountLazily();

                    int count = countLazy.Value;                     // query will be executed here
                    #endregion
                }

                using (var session = store.OpenSession())
                {
                    #region lazy_7
                    Lazy <SuggestionQueryResult> suggestLazy = session
                                                               .Query <Employee>()
                                                               .SuggestLazy();

                    SuggestionQueryResult suggest = suggestLazy.Value;                     // query will be executed here
                    string[] suggestions          = suggest.Suggestions;
                    #endregion
                }

                using (var session = store.OpenSession())
                {
                    #region lazy_9
                    Lazy <FacetResults> facetsLazy = session
                                                     .Query <Camera>("Camera/Costs")
                                                     .ToFacetsLazy("facets/CameraFacets");

                    FacetResults facets = facetsLazy.Value;                     // query will be executed here
                    Dictionary <string, FacetResult> results = facets.Results;
                    #endregion
                }
            }
        }
Exemplo n.º 6
0
        public void HandleResponses(GetResponse[] responses, ShardStrategy shardStrategy)
        {
            var result = new SuggestionQueryResult
            {
                Suggestions = responses
                              .Select(item => RavenJObject.Parse(item.Result))
                              .SelectMany(data => ((RavenJArray)data["Suggestions"]).Select(x => x.Value <string>()))
                              .Distinct()
                              .ToArray()
            };

            Result = result;
        }
Exemplo n.º 7
0
        public void CanProvideSuggestionsAndLazySuggestions()
        {
            using (var store = GetDocumentStore())
            {
                new Users_ByName().Execute(store);

                using (var session = store.OpenSession())
                {
                    session.Store(new User
                    {
                        Name = "John Smith"
                    });
                    session.Store(new User
                    {
                        Name = "Jack Johnson"
                    });
                    session.Store(new User
                    {
                        Name = "Robery Jones"
                    });
                    session.Store(new User
                    {
                        Name = "David Jones"
                    });
                    session.SaveChanges();
                    WaitForIndexing(store);

                    var users = session.Query <User, Users_ByName>()
                                .Where(x => x.Name == "johne");

                    SuggestionQueryResult suggestionResult = users.Suggest();
                    Assert.Equal(3, suggestionResult.Suggestions.Length);
                    Assert.Equal("john", suggestionResult.Suggestions[0]);
                    Assert.Equal("jones", suggestionResult.Suggestions[1]);
                    Assert.Equal("johnson", suggestionResult.Suggestions[2]);


                    Lazy <SuggestionQueryResult> lazySuggestionResult = users.SuggestLazy();

                    Assert.False(lazySuggestionResult.IsValueCreated);

                    suggestionResult = lazySuggestionResult.Value;

                    Assert.Equal(3, suggestionResult.Suggestions.Length);
                    Assert.Equal("john", suggestionResult.Suggestions[0]);
                    Assert.Equal("jones", suggestionResult.Suggestions[1]);
                    Assert.Equal("johnson", suggestionResult.Suggestions[2]);
                }
            }
        }
Exemplo n.º 8
0
        public void HandleResponses(GetResponse[] responses, ShardStrategy shardStrategy)
        {
            var result = new SuggestionQueryResult
            {
                Suggestions = (from item in responses
                               let data = (RavenJObject)item.Result
                                          from suggestion in (RavenJArray)data["Suggestions"]
                                          select suggestion.Value <string>())
                              .Distinct()
                              .ToArray()
            };

            Result = result;
        }
Exemplo n.º 9
0
        public void HandleResponse(GetResponse response)
        {
            if (response.Status != 200 && response.Status != 304)
            {
                throw new InvalidOperationException("Got an unexpected response code for the request: " + response.Status + "\r\n" +
                                                    response.Result);
            }

            var result = (RavenJObject)response.Result;

            Result = new SuggestionQueryResult
            {
                Suggestions = ((RavenJArray)result["Suggestions"]).Select(x => x.Value <string>()).ToArray(),
            };
        }
Exemplo n.º 10
0
        /// <summary>
        /// Executes the specified command.
        /// </summary>
        /// <param name="command">The command.</param>
        /// <param name="scope">The scope.</param>
        public async Task <Result <SearchResult> > Execute(SearchCommand command, ICommandScope scope)
        {
            using (_searchTimer.NewContext(command.SearchText))
            {
                var result = await this
                             .ExecuteActualQueryAsync(command.SearchText, command.Skip, command.Take)
                             .WithCurrentCulture();

                //If we find results, we can just return them
                if (result.Any())
                {
                    return(Result.AsSuccess(SearchResult.WithItems(result)));
                }

                //If we find no results, we can suggest spelling corrections to the user
                SuggestionQueryResult suggestions = await this._documentSession.Query <DocumentsForSearch.Result, DocumentsForSearch>()
                                                    .Search(f => f.SearchText, command.SearchText)
                                                    .SuggestAsync()
                                                    .WithCurrentCulture();

                //If we get only one suggestion, we can just search for the suggested text
                //This way, if the user makes a minor spelling error, we have automatically corrected him
                if (suggestions.Suggestions.Count() == 1)
                {
                    result = await this
                             .ExecuteActualQueryAsync(suggestions.Suggestions.First(), command.Skip, command.Take)
                             .WithCurrentCulture();

                    if (result.Any())
                    {
                        return(Result.AsSuccess(SearchResult.WithItemsThroughSuggestion(suggestions.Suggestions.First(), result)));
                    }
                }

                //Return the suggestions if any
                if (suggestions.Suggestions.Any())
                {
                    return(Result.AsSuccess(SearchResult.WithSuggestions(suggestions.Suggestions)));
                }

                return(Result.AsSuccess(SearchResult.WithNoResults()));
            }
        }
Exemplo n.º 11
0
 public HowToWorkWithSuggestions()
 {
     using (var store = new DocumentStore())
     {
         using (var session = store.OpenSession())
         {
             #region suggest_2
             SuggestionQueryResult suggestions = session
                                                 .Query <Employee, Employees_ByFullName>()
                                                 .Suggest(
                 new SuggestionQuery
             {
                 Field          = "FullName",
                 Term           = "johne",
                 Accuracy       = 0.4f,
                 MaxSuggestions = 5,
                 Distance       = StringDistanceTypes.JaroWinkler,
                 Popularity     = true,
             });
             #endregion
         }
     }
 }
Exemplo n.º 12
0
        public FullQuerySyntax()
        {
            using (var store = NewDocumentStore())
            {
                #region tokenized_field
                QueryResult users = store.DatabaseCommands.Query(
                    "Raven/DocumentsByEntityName",
                    new IndexQuery
                {
                    Query = "Tag:[[Users]]"
                }, null);
                #endregion

                #region name_null_or_empty
                QueryResult usersWithNullOrEmptyName = store.DatabaseCommands.Query(
                    "Users/ByName",
                    new IndexQuery
                {
                    Query = "(Name:[[NULL_VALUE]] OR Name:[[EMPTY_STRING]])"
                }, null);
                #endregion

                #region nested_properties
                using (var session = store.OpenSession())
                {
                    session.Store(new User()
                    {
                        FullName = new FullName()
                        {
                            FirstName = "John",
                            LastName  = "Smith"
                        }
                    });

                    session.SaveChanges();
                }

                var usersByNameJohn = store.DatabaseCommands.Query("dynamic", new IndexQuery()
                {
                    Query = "Name.FirstName:John"
                }, null);
                #endregion


                using (var session = store.OpenSession())
                {
                    #region users_by_tag_sportsman
                    session.Store(new User()
                    {
                        Tags = new List <Tag>()
                        {
                            new Tag()
                            {
                                Name = "sportsman"
                            }
                        }
                    });

                    session.SaveChanges();

                    var usersTagggedAsSportsman = session.Advanced.LuceneQuery <User>()
                                                  .Where("Tags,Name:sportsman")
                                                  .ToList();
                    #endregion
                }


                using (var session = store.OpenSession())
                {
                    #region users_by_dob
                    var usersbyDoB = session.Advanced.LuceneQuery <User>()
                                     .Where("DateOfBirth:[1980-01-01 TO 1999-12-31T00:00:00.0000000]")
                                     .ToList();
                    #endregion
                }

                #region suggestion_syntax
                SuggestionQueryResult result = store.DatabaseCommands.Suggest(
                    "Users/ByFullName",
                    new SuggestionQuery()
                {
                    Field = "FullName",
                    Term  = "<<johne davi>>"
                });
                #endregion

                #region age_exact
                QueryResult usersByExactAge = store.DatabaseCommands.Query(
                    "Users/ByAge",
                    new IndexQuery
                {
                    Query = "Age:20"
                }, null);

                #endregion

                #region age_range
                QueryResult usersByAgeRange = store.DatabaseCommands.Query(
                    "Users/ByAge",
                    new IndexQuery
                {
                    Query = "Age_Range:{20 TO NULL}"
                }, null);

                #endregion

                #region in_method
                var usersByInMethod = store.DatabaseCommands.Query("Users/ByAge", new IndexQuery()
                {
                    Query = "@in<Age>:(20, 25)"
                }, null);
                #endregion

                #region in_method_comma
                var usersWithComma = store.DatabaseCommands.Query("Users/ByVisitedCountries", new IndexQuery()
                {
                    Query = "@in<VisitedCountries>:(\"Australia`,` Canada\", Israel)"
                }, null);
                #endregion
            }
        }
Exemplo n.º 13
0
        public Suggestions()
        {
            using (var store = new DocumentStore())
            {
                using (var session = store.OpenSession())
                {
                    #region suggestions_2
                    IQueryable <Product> query = session
                                                 .Query <Product, Products_ByName>()
                                                 .Where(x => x.Name == "chaig");

                    Product product = query.FirstOrDefault();
                    #endregion

                    #region suggestions_3
                    if (product == null)
                    {
                        SuggestionQueryResult suggestionResult = query.Suggest();

                        Console.WriteLine("Did you mean?");

                        foreach (string suggestion in suggestionResult.Suggestions)
                        {
                            Console.WriteLine("\t{0}", suggestion);
                        }
                    }
                    #endregion

                    #region query_suggestion_with_options
                    session
                    .Query <Product, Products_ByName>()
                    .Suggest(
                        new SuggestionQuery
                    {
                        Field          = "Name",
                        Term           = "chaig",
                        Accuracy       = 0.4f,
                        MaxSuggestions = 5,
                        Distance       = StringDistanceTypes.JaroWinkler,
                        Popularity     = true
                    });
                    #endregion

                    #region document_store_suggestion
                    store
                    .DatabaseCommands
                    .Suggest(
                        "Products/ByName",
                        new SuggestionQuery
                    {
                        Field          = "Name",
                        Term           = "chaig",
                        Accuracy       = 0.4f,
                        MaxSuggestions = 5,
                        Distance       = StringDistanceTypes.JaroWinkler,
                        Popularity     = true
                    });
                    #endregion

                    #region query_suggestion_over_multiple_words
                    SuggestionQueryResult resultsByMultipleWords =
                        session
                        .Query <Product, Products_ByName>()
                        .Suggest(new SuggestionQuery
                    {
                        Field          = "Name",
                        Term           = "<<chaig tof>>",
                        Accuracy       = 0.4f,
                        MaxSuggestions = 5,
                        Distance       = StringDistanceTypes.JaroWinkler,
                        Popularity     = true,
                    });

                    Console.WriteLine("Did you mean?");

                    foreach (string suggestion in resultsByMultipleWords.Suggestions)
                    {
                        Console.WriteLine("\t{0}", suggestion);
                    }
                    #endregion
                }
            }
        }
Exemplo n.º 14
0
        public Suggestions()
        {
            using (var store = NewDocumentStore())
            {
                using (var session = store.OpenSession())
                {
                    #region query
                    var query = session.Query <User, Users_ByFullName>().Where(x => x.FullName == "johne");

                    var user = query.FirstOrDefault();
                    #endregion

                    #region query_suggestion
                    if (user == null)
                    {
                        SuggestionQueryResult suggestionResult = query.Suggest();

                        Console.WriteLine("Did you mean?");

                        foreach (var suggestion in suggestionResult.Suggestions)
                        {
                            Console.WriteLine("\t{0}", suggestion);
                        }
                    }
                    #endregion

                    #region query_suggestion_with_options

                    session.Query <User, Users_ByFullName>()
                    .Suggest(new SuggestionQuery()
                    {
                        Field          = "FullName",
                        Term           = "johne",
                        Accuracy       = 0.4f,
                        MaxSuggestions = 5,
                        Distance       = StringDistanceTypes.JaroWinkler,
                        Popularity     = true,
                    });
                    #endregion

                    #region document_store_suggestion
                    store.DatabaseCommands.Suggest("Users/ByFullName", new SuggestionQuery()
                    {
                        Field = "FullName",
                        Term  = "johne"
                    });

                    #endregion

                    #region query_suggestion_over_multiple_words

                    SuggestionQueryResult resultsByMultipleWords = session.Query <User, Users_ByFullName>()
                                                                   .Suggest(new SuggestionQuery()
                    {
                        Field          = "FullName",
                        Term           = "<<johne davi>>",
                        Accuracy       = 0.4f,
                        MaxSuggestions = 5,
                        Distance       = StringDistanceTypes.JaroWinkler,
                        Popularity     = true,
                    });

                    Console.WriteLine("Did you mean?");

                    foreach (var suggestion in resultsByMultipleWords.Suggestions)
                    {
                        Console.WriteLine("\t{0}", suggestion);
                    }
                    #endregion
                }
            }
        }
Exemplo n.º 15
0
        public void Sample()
        {
            using (var store = NewDocumentStore())
            {
                using (var session = store.OpenSession())
                {
                    #region lazy_operations_querying_1
                    IEnumerable <User> users = session
                                               .Query <User>()
                                               .Where(x => x.Name == "john");

                    #endregion
                }

                using (var session = store.OpenSession())
                {
                    #region lazy_operations_querying_2
                    Lazy <IEnumerable <User> > lazyUsers = session
                                                           .Query <User>()
                                                           .Where(x => x.Name == "John")
                                                           .Lazily();

                    #endregion

                    #region lazy_operations_querying_3
                    IEnumerable <User> users = lazyUsers.Value;

                    #endregion
                }

                using (var session = store.OpenSession())
                {
                    #region lazy_operations_querying_4
                    IEnumerable <User> users  = null;
                    IEnumerable <City> cities = null;

                    session
                    .Query <User>()
                    .Where(x => x.Name == "John")
                    .Lazily(x => users = x);

                    session
                    .Query <City>()
                    .Where(x => x.Name == "New York")
                    .Lazily(x => cities = x);

                    session.Advanced.Eagerly.ExecuteAllPendingLazyOperations();

                    #endregion
                }

                using (var session = store.OpenSession())
                {
                    #region lazy_operations_querying_5
                    Lazy <IEnumerable <User> > users = session.Advanced
                                                       .LuceneQuery <User>()
                                                       .WhereEquals("Name", "John")
                                                       .Lazily();

                    #endregion
                }

                using (var session = store.OpenSession())
                {
                    #region lazy_operations_loading_1
                    User user = session.Load <User>("users/1");

                    #endregion
                }

                using (var session = store.OpenSession())
                {
                    #region lazy_operations_loading_2
                    Lazy <User> lazyUser = session.Advanced.Lazily.Load <User>("users/1");

                    #endregion

                    #region lazy_operations_loading_3
                    User user = lazyUser.Value;

                    #endregion
                }

                using (var session = store.OpenSession())
                {
                    #region lazy_operations_loading_4
                    User user = null;

                    session.Advanced.Lazily.Load <User>("users/1", x => user = x);
                    session.Advanced.Eagerly.ExecuteAllPendingLazyOperations();

                    #endregion
                }

                using (var session = store.OpenSession())
                {
                    #region lazy_operations_loading_5
                    var users = session.Advanced.Lazily.LoadStartingWith <User>("users/1");

                    #endregion
                }

                #region lazy_operations_loading_7
                using (var session = store.OpenSession())
                {
                    var user = new User
                    {
                        Id     = "users/1",
                        Name   = "John",
                        CityId = "cities/1"
                    };

                    var city = new City
                    {
                        Id   = "cities/1",
                        Name = "New York"
                    };

                    session.Store(user);
                    session.SaveChanges();
                }

                #endregion

                using (var session = store.OpenSession())
                {
                    #region lazy_operations_loading_8
                    var lazyUser = session.Advanced.Lazily
                                   .Include("CityId")
                                   .Load <User>("users/1");

                    var user         = lazyUser.Value;
                    var isCityLoaded = session.Advanced.IsLoaded("cities/1");                     // will be true

                    #endregion
                }

                using (var session = store.OpenSession())
                {
                    #region lazy_operations_facets_1
                    Lazy <FacetResults> lazyFacetResults = session
                                                           .Query <Camera>("CameraCost")
                                                           .Where(x => x.Cost >= 100 && x.Cost <= 300)
                                                           .ToFacetsLazy("facets/CameraFacets");

                    FacetResults facetResults = lazyFacetResults.Value;

                    #endregion
                }

                using (var session = store.OpenSession())
                {
                    #region lazy_operations_suggest_1
                    Lazy <SuggestionQueryResult> lazySuggestionResult = session
                                                                        .Query <User>()
                                                                        .Where(x => x.Name == "John")
                                                                        .SuggestLazy();

                    SuggestionQueryResult suggestionResult = lazySuggestionResult.Value;

                    #endregion
                }
            }
        }
Exemplo n.º 16
0
 public void SetResult(SuggestionQueryResult result)
 {
     _result = result;
 }
Exemplo n.º 17
0
        public static void WriteSuggestionQueryResult(this BlittableJsonTextWriter writer, JsonOperationContext context, SuggestionQueryResult result, out int numberOfResults)
        {
            writer.WriteStartObject();

            writer.WritePropertyName(nameof(result.TotalResults));
            writer.WriteInteger(result.TotalResults);
            writer.WriteComma();

            writer.WritePropertyName(nameof(result.DurationInMs));
            writer.WriteInteger(result.DurationInMs);
            writer.WriteComma();

            writer.WriteQueryResult(context, result, metadataOnly: false, numberOfResults: out numberOfResults, partial: true);

            writer.WriteEndObject();
        }