Asp.net mvc 从Lucene.net中的匹配项转换

Asp.net mvc 从Lucene.net中的匹配项转换,asp.net-mvc,asp.net-identity,lucene.net,asp.net-identity-2,Asp.net Mvc,Asp.net Identity,Lucene.net,Asp.net Identity 2,嘿,伙计们,我在我的项目中使用Lucene.net,想搜索用户。我在项目中也使用asp.net标识,但在将匹配项转换为用户时遇到问题。问题是如何将字符串转换为声明、角色、登录名、CreateDateUtc和其他属性?因为从doc中检索它们。Get(“属性”)是字符串。有人能帮我解决这个问题吗 foreach (var item in matches) { var id = item.Doc; var doc = searcher

嘿,伙计们,我在我的项目中使用Lucene.net,想搜索用户。我在项目中也使用asp.net标识,但在将匹配项转换为用户时遇到问题。问题是如何将字符串转换为声明、角色、登录名、CreateDateUtc和其他属性?因为从
doc中检索它们。Get(“属性”)
是字符串。有人能帮我解决这个问题吗

  foreach (var item in matches)
        {
            var id = item.Doc;
            var doc = searcher.Doc(id);

            var user = new IdentityUser();

            user.Id = doc.Get("Id");
            user.Email = doc.Get("Email");
            user.UserName = doc.Get("Username");
            user.DisplayName = doc.Get("DisplayName");
            user.PasswordHash = doc.Get("PasswordHash");
            user.PhoneNumber = doc.Get("PhoneNumber");
            user.PhoneNumberConfirmed = Convert.ToBoolean(doc.Get("PhoneNumberConfirmed"));
            user.SecurityStamp = doc.Get("SecurityStamp");
            user.Claims = (List<Microsoft.AspNet.Identity.UserLoginInfo>)doc.Get("Claims");
            user.CreateDateUtc = doc.Get("CreateDateUtc");
            user.LastLoginDateUtc = doc.Get("LastLoginDateUtc");
            user.Logins = doc.Get("Logins");
            user.Roles = doc.Get("Roles");


            userList.Add(user);
        }
foreach(匹配项中的变量项)
{
var id=item.Doc;
var doc=searcher.doc(id);
var user=new IdentityUser();
user.Id=doc.Get(“Id”);
user.Email=doc.Get(“电子邮件”);
user.UserName=doc.Get(“用户名”);
user.DisplayName=doc.Get(“DisplayName”);
user.PasswordHash=doc.Get(“PasswordHash”);
user.PhoneNumber=doc.Get(“PhoneNumber”);
user.PhoneNumberConfirmed=Convert.ToBoolean(doc.Get(“PhoneNumberConfirmed”);
user.SecurityStamp=doc.Get(“SecurityStamp”);
user.Claims=(List)doc.Get(“Claims”);
user.CreateDateUtc=doc.Get(“CreateDateUtc”);
user.lastloginadeutc=doc.Get(“lastloginadeutc”);
user.Logins=doc.Get(“Logins”);
user.Roles=doc.Get(“角色”);
添加(用户);
}

为什么要使用Lucene作为数据库?@haim770我没有使用Lucene作为数据库,我的数据库是Neo4j,我想根据用户名和电子邮件搜索用户,但使用Lucene.net,您知道我很乐意帮助meLucene将其数据存储为
string
,但它确实提供了一种从字段中提取/转换基本类型的方法,如
int
bool
DateTime
等。但是,从文档中提取
List
超出了Lucene文档字段的范围或用途。您可以尝试在存储时序列化它,在读取时反序列化它,但我不确定它将如何影响您的搜索结果。