NativeSearchQueryBuilder.withFields(...)メソッドを使用すると、ネストされたフィールドが返されないようです。ここでSpring Data Elastic SearchネストされたフィールドとNativeSearchQueryBuilder.withFields
は私の親オブジェクトである:
public class Model
{
@Field(type=FieldType.String, index=FieldIndex.not_analyzed, store=true)
private String model;
@Field(type=FieldType.String, index=FieldIndex.not_analyzed, store=true)
private Set<String> series;
}
とクエリ= 529 TotalElementsしかし、各オブジェクトで結果として得られる
NativeSearchQueryBuilder nativeSearchQueryBuilder = new NativeSearchQueryBuilder();
nativeSearchQueryBuilder.withQuery(QueryBuilders.matchAllQuery());
nativeSearchQueryBuilder.withFields("models.series");
NativeSearchQuery nativeSearchQuery = nativeSearchQueryBuilder.build();
FacetedPage<Inventory> results = inventoryRepository.search(nativeSearchQuery);
:
@Document(indexName = "inventory")
public class Inventory
{
@Id
private String id;
@Field(type=FieldType.String)
private String name;
@Field(type=FieldType.Nested, index=FieldIndex.not_analyzed, store=true)
private List<Model> models;
}
そしてここでは、ネストされたオブジェクトでありますコンテンツは次のようになります(JSON形式):
{
"id":"d5f82880-15bc-45ed-8abb-ff97d0e45da9",
"name": null,
"models": null
}
私はwithFields(...)の設定を削除した場合、私は戻って取得:
{
"id":"d5f82880-15bc-45ed-8abb-ff97d0e45da9",
"name": "Cool Beans",
"models": [
{
"model" : "foo",
"series" : ["bar"]
}
]
}
私はモデル、models.model、models.series、モデル、シリーズを試してみました。私はwithFieldsがNestedFieldsで作業することができません。
どのような考えですか?
に加えて、それが反応して、' source'を返しません。あなたのレコードの値を取得するために、ヒットには 'fields'だけが存在します。私はあなたが値の源を見ていると思います – Rahul