0

如果我有以下课程,我会将这两个字段都添加到同一个nameLucene 索引中还是会覆盖另一个?

public User {

    @Field(name="name",store = Store.YES)
    public String getDecoratedName() {
        return name + " foobar";
    }

    @Field(store = Store.YES)
    public String getName() {
        return name;
    }

}
4

2 回答 2

1

Lucene 中的底层数据结构是所谓的 Document,它基本上是一个 Fieldable 列表。Fieldable 基本上是一个键/值对。您可以拥有多个具有相同键的字段。

因此,要回答您的问题,在您的场景中,将有两个字段都具有相同的键(“名称”)。值当然不同。

于 2013-11-09T18:26:34.540 回答
1

您将同时添加两者。这意味着如果两个匹配中的任何一个匹配,则对字段“名称”的查询将匹配。您可能希望将它们分开,以便在查询期间灵活地选择要定位的对象:如果需要,您可以轻松地同时定位两者。

于 2013-11-09T18:23:31.667 回答