使用带有@Document的Spring-Data Elasticsearch动态创建索引名

时间:2016-06-29 10:40:37

标签: spring spring-security spring-boot spring-data spring-data-elasticsearch

我想在

中动态获取indexname
@Document(indexName="Something",type="type")

我尝试使用以下代码:

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

但是在运行时,当我从UI发送两个请求以从不同索引从ES获取数据时,它无法正常工作。

我该怎么做才能解决这个问题?

1 个答案:

答案 0 :(得分:0)

解决方法是使用NativeSearchQuerries。 在那里,您可以将索引设置为您喜欢的任何内容:

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));