Lucene.Net中的父子关系

时间:2013-11-25 16:54:19

标签: c# .net lucene.net

我想弄清楚如何在Lucene.Net中存储父子关系。 Java实现支持它,但.Net端口缺乏Java实现的方式,最近一年前改为Lucene.Net代码。

展平子表无济于事,因为我不希望它搜索子表中的不同记录。例如,这是我的架构:

恢复

Id Name
1  Mike
2  Smith

体验

Id  ResumeId  CompanyName  FromDate    ToDate
1   1         Microsoft    01/01/2003  12/31/2011
2   1         Google       01/01/2012  11/01/2013
3   2         Google       01/01/2005  12/31/2006
4   2         Yahoo        01/01/2007  12/31/2012

所以,如果我从儿童桌上放平记录,那么然后想要在 01/01/2000 12/31/2010 之间搜索为 Google 工作的候选人,然后它会返回:

Id Name
1  Mike
2  Smith

而只有史密斯在 01/01/2000 12/31/2010 之间为 Google 工作。

可能的解决方案:

如何为Resumes& amp; amp; amp; amp;另一个用于体验,使用Lucene Query过滤记录并在客户端(C#)的两个结果集上应用Join?

我不认为Lucene.Net正在被维护(这是正确的还是我错过了什么?)所以我开始考虑转换到Solr或Elasticsearch。

1 个答案:

答案 0 :(得分:2)

首先,最近对Lucene.Net的提交是几天前到分支机构branch_4e  对于版本4的兼容性。 Lucene.Net项目仍处于活动状态并得到维护。

这听起来像是一个典型的数据库查询,在CompanyName,StartDate,StopDate上有一个简单的索引。

Lucene.Net解决方案可能是使用payloads。您可以将公司名称术语与包含开始和停止日期的[to lucene opaque]字节数组相关联。  然后,您需要编写自己的类似(example),对于不匹配的条目将返回零,并将其与PositiveScoresOnlyCollector组合。