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

両方を追加することになります。これは、2 つのいずれかが一致する場合、フィールド「name」に対するクエリが一致することを意味します。クエリ中にどちらをターゲットにするかを柔軟に選択できるように、それらを別々にしておくことをお勧めします。必要に応じて、両方を簡単にターゲットにすることができます。

于 2013-11-09T18:23:31.667 に答える
1

Lucene の基礎となるデータ構造は、基本的に Fieldable のリストである、いわゆる Document です。Fieldable は基本的にキーと値のペアです。同じキーを持つ複数のフィールドを持つことができます。

あなたの質問に答えるために、あなたのシナリオでは、同じキー(「名前」)を持つ2つのフィールドがあります。値はもちろん異なります。

于 2013-11-09T18:26:34.540 に答える