class Program
{
static void Main(string[] args)
{
const string DefaultDatabase = "EqualsTryOut";
IDocumentStore store = new DocumentStore
{
Url = "http://localhost:8080",
DefaultDatabase = DefaultDatabase
}.Initialize();
store.DatabaseCommands.EnsureDatabaseExists(DefaultDatabase);
using (var ses = store.OpenSession())
{
var user = new User { Name = "Irmak", Roles = new List<string> { "adMin", "GuEst" } };
ses.Store(user);
ses.SaveChanges();
//This fails dues to Turkish I
var user1 = ses.Query<User>().Where(usr => usr.Name == "ırmak").FirstOrDefault();
//this finds Name:Irmak
var user2 = ses.Query<User>().Where(usr => usr.Name == "IrMak").FirstOrDefault();
}
}
}
public class User
{
public string Id { get; set; }
public string Name { get; set; }
public ICollection<string> Roles { get; set; }
}
You can also create your own custom analyzer, compile it to a dll and drop it in in directory called "Analyzers" under the RavenDB base directory. Afterward, you can then use the fully qualified type name of your custom analyzer as the analyzer for a particular field.
--
You received this message because you are subscribed to the Google Groups "ravendb" group.
To unsubscribe from this group and stop receiving emails from it, send an email to ravendb+u...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
--
public class Users : AbstractIndexCreationTask<User>
{
public Users()
{
Map = users => from user in users
select new
{
user.Name
};
Analyzers.Add(x => x.Name, typeof(LuceneAnalyzers.TurkishLowerCaseKeywordAnalyzer).FullName);
}
}
An unhandled exception of type 'System.InvalidOperationException' occurred in Raven.Client.Lightweight.dll
Additional information: Url: "/indexes/Users?query=Name%253A%25C4%25B1rmak&pageSize=1"
System.InvalidOperationException: Cannot find analyzer type 'LuceneAnalyzers.TurkishLowerCaseKeywordAnalyzer' for field: Name
at Raven.Database.Extensions.IndexingExtensions.CreateAnalyzerInstance(String name, String analyzerTypeAsString) in c:\Builds\RavenDB-Stable\Raven.Database\Extensions\IndexingExtensions.cs:line 48
at Raven.Database.Indexing.Index.CreateAnalyzer(Analyzer defaultAnalyzer, ICollection`1 toDispose, Boolean forQuerying) in c:\Builds\RavenDB-Stable\Raven.Database\Indexing\Index.cs:line 451
at Raven.Database.Indexing.Index.IndexQueryOperation.GetLuceneQuery(String query, IndexQuery indexQuery) in c:\Builds\RavenDB-Stable\Raven.Database\Indexing\Index.cs:line 1110
at Raven.Database.Indexing.Index.IndexQueryOperation.GetLuceneQuery() in c:\Builds\RavenDB-Stable\Raven.Database\Indexing\Index.cs:line 1081
at Raven.Database.Indexing.Index.IndexQueryOperation.<Query>d__56.MoveNext() in c:\Builds\RavenDB-Stable\Raven.Database\Indexing\Index.cs:line 803
at System.Linq.Enumerable.WhereSelectEnumerableIterator`2.MoveNext()
at System.Linq.Enumerable.WhereSelectEnumerableIterator`2.MoveNext()
at Raven.Database.DocumentDatabase.<>c__DisplayClass97.<Query>b__8e(IStorageActionsAccessor actions) in c:\Builds\RavenDB-Stable\Raven.Database\DocumentDatabase.cs:line 1220
at Raven.Storage.Esent.TransactionalStorage.ExecuteBatch(Action`1 action) in c:\Builds\RavenDB-Stable\Raven.Database\Storage\Esent\TransactionalStorage.cs:line 558
at Raven.Storage.Esent.TransactionalStorage.Batch(Action`1 action) in c:\Builds\RavenDB-Stable\Raven.Database\Storage\Esent\TransactionalStorage.cs:line 516
at Raven.Database.DocumentDatabase.Query(String index, IndexQuery query) in c:\Builds\RavenDB-Stable\Raven.Database\DocumentDatabase.cs:line 1237
at Raven.Database.Server.Responders.Index.PerformQueryAgainstExistingIndex(IHttpContext context, String index, IndexQuery indexQuery, Guid& indexEtag) in c:\Builds\RavenDB-Stable\Raven.Database\Server\Responders\Index.cs:line 499
at Raven.Database.Server.Responders.Index.ExecuteQuery(IHttpContext context, String index, Guid& indexEtag) in c:\Builds\RavenDB-Stable\Raven.Database\Server\Responders\Index.cs:line 436
at Raven.Database.Server.Responders.Index.GetIndexQueryResult(IHttpContext context, String index) in c:\Builds\RavenDB-Stable\Raven.Database\Server\Responders\Index.cs:line 375
at Raven.Database.Server.HttpServer.DispatchRequest(IHttpContext ctx) in c:\Builds\RavenDB-Stable\Raven.Database\Server\HttpServer.cs:line 864
at Raven.Database.Server.HttpServer.HandleActualRequest(IHttpContext ctx) in c:\Builds\RavenDB-Stable\Raven.Database\Server\HttpServer.cs:line 609
--
An unhandled exception of type 'System.InvalidOperationException' occurred in Raven.Client.Lightweight.dll
Additional information: Url: "/indexes/Users"
System.ArgumentException: Could not create analyzer for field: 'Name' because the type 'LuceneAnalyzers.TurkishLowerCaseKeywordAnalyzer' was not found
at Raven.Database.Indexing.IndexStorage.AssertAnalyzersValid(IndexDefinition indexDefinition) in c:\Builds\RavenDB-Stable\Raven.Database\Indexing\IndexStorage.cs:line 385
at Raven.Database.Indexing.IndexStorage.CreateIndexImplementation(IndexDefinition indexDefinition) in c:\Builds\RavenDB-Stable\Raven.Database\Indexing\IndexStorage.cs:line 376
at Raven.Database.DocumentDatabase.PutIndex(String name, IndexDefinition definition) in c:\Builds\RavenDB-Stable\Raven.Database\DocumentDatabase.cs:line 1092
at Raven.Database.Server.Responders.Index.Put(IHttpContext context, String index) in c:\Builds\RavenDB-Stable\Raven.Database\Server\Responders\Index.cs:line 83
at Raven.Database.Server.HttpServer.DispatchRequest(IHttpContext ctx) in c:\Builds\RavenDB-Stable\Raven.Database\Server\HttpServer.cs:line 864
at Raven.Database.Server.HttpServer.HandleActualRequest(IHttpContext ctx) in c:\Builds\RavenDB-Stable\Raven.Database\Server\HttpServer.cs:line 609
public class Users : AbstractIndexCreationTask<User>
{
public Users()
{
Map = users => from user in users
select new
{
user.Name
};
Analyzers.Add(x => x.Name, typeof(LuceneAnalyzers.TurkishLowerCaseKeywordAnalyzer).AssemblyQualifiedName);
}
}
var retrievedUser = ses.Query<User, Users>().Where(usr => usr.Name == "ırmak").FirstOrDefault();