我想弄清楚如何在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。
答案 0 :(得分:2)
首先,最近对Lucene.Net的提交是几天前到分支机构branch_4e 对于版本4的兼容性。 Lucene.Net项目仍处于活动状态并得到维护。
这听起来像是一个典型的数据库查询,在CompanyName,StartDate,StopDate上有一个简单的索引。
Lucene.Net解决方案可能是使用payloads。您可以将公司名称术语与包含开始和停止日期的[to lucene opaque]字节数组相关联。 然后,您需要编写自己的类似(example),对于不匹配的条目将返回零,并将其与PositiveScoresOnlyCollector组合。