我可以在Lucene的多个字段中共享一个值吗?

我可以在Lucene的多个字段中共享一个值吗?,lucene,lucene.net,Lucene,Lucene.net,我想知道是否有可能在Lucene中一次向多个字段添加一个值,这样我就不必跨多个字段复制该值并浪费不必要的空间 例如,假设我有一个代表一本书的记录,并且我有几本书的摘要来源,可能是维基百科、亚马逊、国会图书馆。假设我在索引中有一个特定的字段来存储这些内容,例如“summary.wikipedia”等 同时,我希望有一个名为“summary”的通用字段名,我可以将其设置为一个特定的摘要,这样索引上的查询就可以只搜索“summary”字段,而不必指定要搜索的摘要 我希望能够在添加字段时指定多个字段标识

我想知道是否有可能在Lucene中一次向多个字段添加一个值,这样我就不必跨多个字段复制该值并浪费不必要的空间

例如,假设我有一个代表一本书的记录,并且我有几本书的摘要来源,可能是维基百科、亚马逊、国会图书馆。假设我在索引中有一个特定的字段来存储这些内容,例如“summary.wikipedia”等

同时,我希望有一个名为“summary”的通用字段名,我可以将其设置为一个特定的摘要,这样索引上的查询就可以只搜索“summary”字段,而不必指定要搜索的摘要

我希望能够在添加字段时指定多个字段标识符,以便可以在这些字段之间共享值,而无需复制数据和浪费空间

例如:


这有可能吗?或者我只需添加两次字段,使用相同的数据,但字段名不同?

在Lucene中无法做到这一点。正如您在评论中所述,您始终可以将“常规摘要”字段设置为索引字段,而不是存储字段。然后,您可以添加另一个名为“summary\u source”的字段,告诉您摘要来自哪个字段。

我想如果我做不到这一点,我可以将常规的“summary”字段添加为索引字段,但不存储,但仍然很难获得原始摘要,不知道它来自哪个存储字段。Lucene实际上没有“关系”的概念。因此,有一个字段作为指向另一个字段的指针的想法是半诅咒的。
document.AddField( new string[] { "summary.wikipedia", "summary" }, "Summary of the book...", ... );