【发布时间】:2016-05-17 19:37:00
【问题描述】:
我在我的项目中使用 Lucene.NET。现在我有一个有点棘手的星座。我有两个实体:
public class Dash {
public int Id { get; set; }
public string Description { get; set; }
public int ActivityId { get; set; }
public string Username { get; set; }
}
public class Activity {
public int Id { get; set; }
public string Subject { get; set; }
}
我在 Lucene-Index 中将实体 Activity 作为文档存储,并将 Dash 作为文档存储。
现在,我可以搜索 Dash-Entries 之类的
+Description:"Appointment" +Username:"mm"
或像
这样的活动条目+Subject:"Appointment-Invitation"
现在,我必须在两个文档中搜索 Dash-Entries。例如,我必须搜索所有用户名为“mm”并在描述中具有字符串“Appointment”的 Dash-Entries,或者关联的 Activity-Entity 在主题中具有“Appointment”。在 SQL(伪)中,这将是:
... where Dash.UserName = 'mm' and (Dash.Description like 'Appointment%' or Dash.Activity.Subject like 'Appointment%'
有人可以帮助我吗,我如何使用 Lucene.NET 做到这一点?也许我必须以另一种方式将文档存储在 Lucene.NET-Index 中?
【问题讨论】:
-
您可以使用
AND,OR运算符。用户名:mm AND(描述:约会 OR 主题:约会) -
但用户名和主题在 Lucene.NET 中不是同一个文档。这也是这种方式吗?
-
我不明白你在问什么,但它〜等于你的伪 sql stmt。
-
在我的伪 sql stmt 中是 Dash 和 Activity 两个不同的表,必须加入
标签: c# lucene full-text-search lucene.net