but it returns nothing . Here's the test :
[Fact]
public void NGramAnalyzerTest()
{
using (var store = NewDocumentStore(runInMemory:false,dataDir:"Data"))
{
var p1 = new Person { Age = 18, Name = "John" };
var p2 = new Person { Age = 21, Name = "Joe" };
var p3 = new Person { Age = 27, Name = "Andy" };
var p4 = new Person { Age = 31, Name = "Linda" };
var p5 = new Person { Age = 45, Name = "Laura"};
using (var session = store.OpenSession())
{
session.Store(p1);
session.Store(p2);
session.Store(p3);
session.Store(p4);
session.Store(p5);
session.SaveChanges();
}
store.DatabaseCommands.PutIndex("PersonByName", new IndexDefinition
{
Map = "from person in docs.Persons select new { person.Name }",
Indexes = {{"Name", FieldIndexing.Analyzed}},
Analyzers = { { "Name", typeof(NGramAnalyzer).AssemblyQualifiedName } }
},true);
using (var session = store.OpenSession())
{
var query =
session.Query<Person>("PersonByName")
.Customize(x => x.WaitForNonStaleResults())
.OrderBy(p=>p.Name)
.Search(p => p.Name, "lin");
Assert.Equal(1,query.ToList().Count);
}
}
}
I am expecting that this query will find "Linda" for me.