使用带有@Document 的 Spring-Data Elasticsearch 动态创建索引名
Posted
技术标签:
【中文标题】使用带有@Document 的 Spring-Data Elasticsearch 动态创建索引名【英文标题】:Creating Indexname Dynamically using Spring-Data Elasticsearch with @Document 【发布时间】:2016-11-01 00:28:33 【问题描述】:我正在尝试在
中动态获取indexname
@Document(indexName="Something",type="type")
我尝试过使用以下代码:
@Document(indexName="#systemProperties['databaseName'] ", type = "dbtype")
但在运行时,当我从 UI 发送两个请求以从不同索引的 ES 获取数据时,它无法正常工作。
我应该怎么做才能解决这个问题?
【问题讨论】:
【参考方案1】:一种解决方法是使用 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));
【讨论】:
最新版本中没有withIndices
- docs.spring.io/spring-data/elasticsearch/docs/current/api/org/…以上是关于使用带有@Document 的 Spring-Data Elasticsearch 动态创建索引名的主要内容,如果未能解决你的问题,请参考以下文章
使用带有 document() 的副本将 SVG 添加到 XHTML 输出
如何使用 .submit() 提交带有 document.forms 对象的表单
找不到带有 document.querySelector 的 atag 链接
document.getElementById 带有循环和本地与全局变量