私はJestを使用してElasticsearchにクエリを実行していますが、これまでのところ素晴らしいです。Jest のドキュメントには次のように書かれています。
結果はドメイン オブジェクトのリストにキャストできます。
... そしてこの例を示します:
SearchResult result = client.execute(search);
List<SearchResult.Hit<Article, Void>> hits = searchResult.getHits(Article.class);
// or
List<Article> articles = result.getSourceAsObjectList(Article.class);
getSourceAsObjectList
は非推奨であり、私は以下を使用しています:
List<SearchResult.Hit<ImmutableConceptDocument, Void>> concepts = result.getHits(ImmutableConceptDocument.class);
...不変ImmutableConceptDocument
生成クラスはどこにありますか-それ以外の場合は、検索結果の下に表示される名前の属性を持つ非常に単純なPOJOです。source
ただし、上記の行を使用すると、ソース プロパティがマップされずscore
、type
、index
などの他の詳細がマップされます。
私は何が欠けていますか?ドメイン クラスには特定の Jest アノテーションなどを付ける必要がありますか?
単体テストでも良い例は見当たりません。これはにマッピングされObject.class
、マッピングの例は表示されません。
不変クラスは次のとおりです。
@Value.Immutable
public abstract class EsConceptDocument {
public abstract String term();
public abstract Category type();
public abstract List<String> synonyms();
}
...Category
は列挙型です。