2

Ich versuche indexname dynamisch inIndexnamen dynamisch mit Spring-Data Elasticsearch mit @Document

@Document(indexName="Something",type="type") 

ich unten Code habe versucht, zu erhalten:

@Document(indexName="#{systemProperties['databaseName'] }", type = "dbtype") 

aber zur Laufzeit, wenn ich sende zwei Anfrage von UI, um die Daten von ES aus verschiedenen Indizes zu erhalten, funktioniert es nicht richtig.

Was soll ich tun, um dieses Problem zu lösen?

Antwort

0

Eine Problemumgehung ist, mit NativeSearchQuerries zu arbeiten. Dort können Sie den Index zu was auch immer Sie möchten:

NativeSearchQuery query = new NativeSearchQueryBuilder().withIndices(indexName) 
       .withQuery(QueryBuilders.matchPhraseQuery("_all", request.getSearchTerm().getSearchString())) 
       .withPageable(new PageRequest(request.getPaging(), request.getMaxResults())) 
.... 
       .build(); 
     result =elastic.query(query, query->query2Result(query)); 
Verwandte Themen