我发现包含'of','和','the'等的搜索不会返回结果,因为Lucene删除了停用词.因此,如果我搜索标题为"第一次世界大战的后果"的项目,我将得到零结果.
但是,如果我删除''和'',那么我正在寻找"第一次世界大战的后果".我会收到预期的文件.
ContentSearch API是否会从查询中删除停用词?这是一个可以配置Lucene删除的东西吗?或者我应该在构建查询之前删除这些停用词?
谢谢亚当
我正在尝试创建一个自定义模型(例如博客文章),该模型与实体"UserProfile"相关,该实体由MVC 4模板中使用的WebSecurity功能用于注册和oAuth身份验证.
示例如下:
public class Post
{
[Key]
[DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
public int Id { get; set; }
public string Detail { get; set; }
public UserProfile User { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我能够正确地将当前的UserProfile关联到博客帖子,如下所示:
post.User = user = db.UserProfiles.FirstOrDefault(u => u.UserName.ToLower() == WebSecurity.CurrentUserName);
db.Posts.Add(post);
db.SaveChanges();
Run Code Online (Sandbox Code Playgroud)
但是当我尝试从数据库中获取Blog帖子时,我得到了一个用户的空对象:
var post = db.Posts.Where(x => x.Id == postId).FirstOrDefault();
post.User is null!
Run Code Online (Sandbox Code Playgroud)
我相信这是因为创建SimpleMembershipProvider时在数据库中创建的关系:
WebSecurity.InitializeDatabaseConnection("DefaultConnection", "UserProfile", "Id", "UserName", autoCreateTables: true);
Run Code Online (Sandbox Code Playgroud)
我确定必须有一种方法可以忽略这些或者在我的博客类的User属性中添加一个属性来克服这个问题?
提前致谢.