Yaylı veri-elasticsearch ve elasticsearch ile birlikte belgeleri sorgulamak için kullanıyorum. İç içe geçmiş belgeler üzerinde iç içe geçmiş sorgular yapmak istiyorum.Yay Verili Elastik Arama İç İçe Aktarılan Alanlar ve eşleme
ben java bu var: Bahar-veri eşlemesi yapmak izin yaparken
@Document(indexName = "as", type = "a", indexStoreType = "memory", shards = 1, replicas = 0, refreshInterval = "-1")
class A {
@Id
private String Id;
@Field(type = String, index = analyzed, store = true)
private String field1;
// ... Many more Fields.
@NestedField(type = FieldType.Object, index = analyzed, store = true, dotSuffix = "accounts")
private List<B> bs;
// ... getters and setters
}
Ve
class B { // some normal pojo }
, alıyorum: Ben çalışıyorum zaman
"a": {
"properties": {
"bs": {
"properties": {
"someBProperty": {
"type": "string"
},
"BId": {
"type": "string"
}
}
},
"id": { ... },
...
}
Belge sorgulamak, klasik iç ve iç içe geçmiş belgeler sorunları alıyorum ve yuvalanmış öğeyi tanımıyor.
İç içe geçmiş belgeyi kullanmak için eşlemeyi güncellemeyi denediğimde, "iç içe geçmişten iç içe geçmişe dönüştürülemez".
Spring-data-es'e bir şekilde @NestedField => türünü eşlemeye "iç içe" koyduğunu söylemeliyim? Dizin & eşlemesi oluşturulduğunda yay verisine özel eşleme eklemenin bir yolu var mı?
Ayrıca, ben üzerinden dizinleri başlatılıyor ediyorum:
elasticsearchTemplate.deleteIndex(A.class);
elasticsearchTemplate.createIndex(A.class);
elasticsearchTemplate.putMapping(A.class);
elasticsearchTemplate.refresh(A.class,true);
Ve sonra yay veri deposunu kullanarak sorgulama: İşte DİNLENME iterable ama aracılığıyla 0 eleman almak etti res
QueryBuilder builder = QueryBuilders.nestedQuery("bs", QueryBuilders.boolQuery().must(QueryBuilders.matchQuery("as.field1", "A1")).must(QueryBuilders.matchQuery("as.field2", "B1")));
Iterable<DenormalizedRelationshipDocument> res = aRepository.search(builder);
iç içe geçmiş sorgudaki hata desteklenmiyor (haritalamada bulunmadığım için). Sonunda
,
mu İlkbahar-Veri-ElasticSearch ES QueryBuilders API üzerinden iç içe eşleştirmeleri destekler? Bu haritalamayı ne zaman yapmalıyım?
de İç içe ve İç Nesne hakkında daha fazla test durumları bulabilirsiniz. –
Lütfen kaynak verilerini kullanarak kaynak kodunu kapatmak için bir yöntem önerebilir misiniz? – Sachin
SearchQuery searchQuery = new NativeSearchQueryBuilder(). Yalnızca belirli alanları istiyorsanız withFields() yöntemi. –