Warning: Invalid argument supplied for foreach() in D:\home\site\wwwroot\wp-includes\translations.php on line 1174 Warning: Invalid argument supplied for foreach() in D:\home\site\wwwroot\wp-includes\translations.php on line 1367 RavenDB – Scattered Code

RavenDB Optional Queries and Boosting

Warning: Invalid argument supplied for foreach() in D:\home\site\wwwroot\wp-includes\translations.php on line 1174 Warning: Invalid argument supplied for foreach() in D:\home\site\wwwroot\wp-includes\translations.php on line 1367

After implementing query-time boosting, I found that I wasn't getting the results I was expecting ... or any at all. I discovered there was an overload when adding queries that tells the query whether it "must," "must not," or "should" occur in the results. Inside a query object that inherits from QueryBase, do the following: Optional Queries // "query" creation elided // ... this.AddQuery(query, BooleanClause.Occur.SHOULD); return this; This made the query optional, allowing the other matching results to be returned. But, since it's boosted, if results are found matching this...

RavenDB “In” operation

Warning: Invalid argument supplied for foreach() in D:\home\site\wwwroot\wp-includes\translations.php on line 1174 Warning: Invalid argument supplied for foreach() in D:\home\site\wwwroot\wp-includes\translations.php on line 1367

RavenDB supports an "in" operator, although vaguely documented.

First, include the namespace

using Raven.Client.Linq;

Usage

var ids = new[] { "myobjects/1", "myobjects/2" };
session
  .Query<MyObj>()
  .Where(o => o.Id.In(ids));

RavenDB Load Balancing

Warning: Invalid argument supplied for foreach() in D:\home\site\wwwroot\wp-includes\translations.php on line 1174 Warning: Invalid argument supplied for foreach() in D:\home\site\wwwroot\wp-includes\translations.php on line 1367

Somewhat counter-intuitive, this behavior is set at the client level, not the server. When servers are setup for replication, they create system documents of the other servers involved in replication. When the client accesses the primary server, it downloads and caches the replication information, so the client can "fail over" properly. To set this up, you need to assign the FailoverBehavior convention in your DocumentStore. Here is how we're doing it with Ninject: // RavenDB Services Bind().ToMethod(context =&gt; { // Create the DocumentStore (expensive operation). var documentStore = new DocumentStore...

RavenDB Lucene Query

Warning: Invalid argument supplied for foreach() in D:\home\site\wwwroot\wp-includes\translations.php on line 1174 Warning: Invalid argument supplied for foreach() in D:\home\site\wwwroot\wp-includes\translations.php on line 1367

How to build a Lucene query using extension methods, and not have the request go out until ToList() is called. private List GetMembers(string nickname) { var query = DocumentSession.Advanced.LuceneQuery(AllMembersIndex.Name); // Search for nickname if (!nickname.IsNullOrWhiteSpace()) query = query.Search("Nickname", nickname); // Execute query return query.ToList(); }

RavenDB Create static index

Warning: Invalid argument supplied for foreach() in D:\home\site\wwwroot\wp-includes\translations.php on line 1174 Warning: Invalid argument supplied for foreach() in D:\home\site\wwwroot\wp-includes\translations.php on line 1367

/// <summary> /// Gets the document store. /// </summary> /// The document store. /// /// Do this only once per AppDomain load. It's very expensive. /// private static IDocumentStore GetDocumentStore() { // Create the DocumentStore (expensive operation). IDocumentStore documentStore = new DocumentStore { ConnectionStringName = "RavenDB", Credentials = System.Net.CredentialCache.DefaultNetworkCredentials // For "trusted connections": see comments at http://ravendb.net/docs/client-api/connecting-to-a-ravendb-datastore }; // Read from and write to all servers. documentStore.Conventions.FailoverBehavior = FailoverBehavior.ReadFromAllServers | FailoverBehavior.AllowReadsFromSecondariesAndWritesToSecondaries; // Initialize the store (must be done before creating indexes) documentStore = documentStore.Initialize(); // Create static indexes CreateRavenStaticIndexes(documentStore); //...