我正在使用 Spring Elasticsearch。这是我的 Java 类:
@Document(indexName = "shopindex")
public class Shop implements Serializable {
@Field(type = FieldType.Text, name = "name")
private String name;
@Field(type = FieldType.Text, name = "address")
private String address;
@Field(type = FieldType.Nested, includeInParent = true)
private ArrayList<Listing> listings;
}
这是我的列表类:
public class Listing implements Serializable{
@Field(type = FieldType.Text, name = "ListingName")
private String name;
@Field(type = FieldType.Text, name = "ListingDescription")
private String description;
}
我想搜索 shopindex 并返回在其名称和描述字段中包含查询字符串的 Listing 对象列表。我已经尝试使用此代码进行搜索:
NativeSearchQuery searchQuery = new NativeSearchQueryBuilder()
.withQuery(QueryBuilders.multiMatchQuery(query, "listings"))
.build();
Iterable<Shop> itr = searchRepository.search(searchQuery);
我想要列出 Iterable 而不是 Shop Iterable。我该怎么做?