我已经尝试了 2 种形式的调用,这个
 products = DocumentSession.Query<Product>()
      .Statistics(out stats)
      .Where(p => p.INFO2.StartsWith(term1))
      .Where(p => p.INFO2.StartsWith(term2))
      .Where(p => p.INFO2.StartsWith(term3)) 
      .OrderByField(columnToSortBy, columnToSortByAsc)
      .Skip(pageIndex * pageSize)
      .Take(pageSize)
      .ToList()
      ;
这样
  products = DocumentSession.Query<Product>()
      .Statistics(out stats)
      .Where(p => p.INFO2.StartsWith(term1) & p.INFO2.StartsWith(term2) & p.INFO2.StartsWith(term3))
      .OrderByField(columnToSortBy, columnToSortByAsc)
      .Skip(pageIndex * pageSize)
      .Take(pageSize)
      .ToList()
      ;
第一个返回的记录更符合我的预期,而第二个似乎返回所有 Product 类型的文档。从 LINQ 表达式的角度来看,两者之间有什么区别,我是否忽略了任何可能否定我想要完成的事情的事情,即 3 项查询并且每个项都被“与”在一起。
编辑:每个 Russ 的修改代码。
  string t1 = terms[0];
  string t2 = terms[1];
  string t3 = terms[2];
  products = DocumentSession.Query<Product>()
      .Statistics(out stats)
      .Where(p => p.INFO2.StartsWith(t1) && p.INFO2.StartsWith(t2) && p.INFO2.StartsWith(t3)) 
      .OrderByField(columnToSortBy, columnToSortByAsc)
      .Skip(pageIndex * pageSize)
      .Take(pageSize)
      .ToList()
      ;
编辑 2:这是您将脸朝下砸在键盘或任何其他实体物体上的地方...必须使用标准 C# And and Or 回到这里的基本内容
谢谢你,斯蒂芬