RavenDB字符串.包含在多地图索引中



到目前为止,我有一个这样的索引:

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"或"Tre",这就有效了

我该如何重写查询以使其像String.Contains("Terr")一样工作?

RavenDB使包含查询变得困难,因为在大多数情况下,它们是不需要的。你可能想要的是做一个StartsWith。

session.Query<Animals_Search.Result, Animals_Search>()
    .Where(a => a.Content.StartsWith(match))                
    .As<Animal>()
    .ToList();

最新更新