我是否会通过具有相同的@Field名称值来覆盖或添加到Lucene索引

时间:2013-11-09 00:59:25

标签: java lucene hibernate-search

如果我有以下课程,我是否会将两个字段添加到相同的name Lucene索引中,还是会覆盖另一个?

public User {

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

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

}

2 个答案:

答案 0 :(得分:1)

你会加两个。这意味着如果两个匹配中的任何一个匹配,则字段“name”上的查询将匹配。 您可能希望将它们分开,以便在查询期间灵活地选择要定位的目标:如果需要,您可以轻松地将它们作为目标。

答案 1 :(得分:1)

Lucene中的底层数据结构是一个所谓的Document,它基本上是Fieldables的列表。 Fieldable基本上是一个键/值对。您可以使用相同的密钥创建多个字段。

因此,为了回答您的问题,在您的方案中,将有两个字段都具有相同的密钥(“名称”)。当然,价值不同。