到目前为止,我有一个像这样的索引:
public class Animals_Search : AbstractMultiMapIndexCreationTask<Animals_Search.Result> {
public class Result {
public object[] Content { get; set; }
}
public Animals_Search() {
AddMap<Dog>(a => from b in a select new Result { Content = new object[] { b.Name, b.Breed} });
AddMap<Cat>(a=> from bin docs select new Result { Content = new object[] { b.Name, b.Breed} });
Index(x => x.Content, FieldIndexing.Analyzed);
}
}
这样的查询:
session.Query<Animals_Search.Result, Animals_Search>()
.Search(a => a.Content, match)
.As<Animal>()
.ToList();
如果我提供“Collie”或“Terrier”之类的搜索字词,而不是“Coll”或“Terr”
,则可以使用如何重写查询以使用String.Contains(“Terr”)之类的工作?
答案 0 :(得分:1)
RavenDB使得包含查询变得困难,因为在大多数情况下,它们不是必需的。 你可能想要的是做一个StartsWith,而不是。
session.Query<Animals_Search.Result, Animals_Search>()
.Where(a => a.Content.StartsWith(match))
.As<Animal>()
.ToList();