2017-01-31 5 views
0

他の下位要素のリストを持つエンティティがあるとします。 リストに複数の要素がある場合、ファセット要求では、各グループに対してすべての要素がカウントされますが、ランダムな(おそらく何らかのメカニズムがあります)プロパティに対してのみカウントされます。 Baseの場合リスト上のLuceneファセット要求 - 不足要素

FacetingRequest categoryFacetingRequest = qBuilder.facet() 
       .name("districtFaceting").onField("address.districtId") 
       .discrete().orderedBy(FacetSortOrder.COUNT_DESC) 
       .includeZeroCounts(true).createFacetingRequest(); 

class Base { 
    List<Address> adresses = ... 
} 

class Address { 

    @Field(analyze = Analyze.NO, store = Store.YES, index = Index.YES) 
    public String getDistrictId() { 
     return this.districtId; 
    } 

} 

複数のアドレスを持つことになり、ファセット要求がランダムdistrict IDに対して1つだけのカウントを返します。その他はインクリメントされません。

正しい結果が得られる解決法はありますか?

答えて

2

ファセット要求を使用するには、ファセットを使用するフィールドには、@Facetという名前で注釈を付ける必要があります。

あなたのコードスニペットにはこの注釈がありません。そのため、この問題が説明されています。 getDiscritctId@Facet注釈を追加してみませんか?

コードサンプルを既にお持ちの場合は、コードサンプルを展開して、コードに含まれている関連する注釈をすべて含めることができますか? (@Facet@Indexed@IndexedEmbedded、...)

https://docs.jboss.org/hibernate/stable/search/reference/en-US/html_single/#example-faceting-entity

+0

を参照してください。おそらくそれが答えてくれてありがとう、理由です。すべてのモデルは@ Indexedと@ IndexedEmbeddedアノテーションでビルドされています。おそらく、この欠けている@ファセットは結果を正しくないでしょう。私はすぐにこれを確認します。 – kxyz

関連する問題