我有下面的代码在我的java服务工作正常。
Query searchQuery = new StringQuery(
"{\"bool\":{\"must\":[{\"match\":{\"id\":\"" + id + "\"}}]}}");
SearchHits<Instance> instanceSearchHits = elasticsearchOperations.search(searchQuery, Instance.class, IndexCoordinates.of("test"));
log.info("hits :: " + instanceSearchHits.getSearchHits().size());
现在,我想将此查询保存为elastic中的一个模板,只需将params和search模板从java服务传递到elastic即可执行查询。
已在弹性中添加搜索模板
PUT _scripts/search-template-1
{
"script": {
"lang": "mustache",
"source": {
"query": {
"bool": {
"must": [
{
"term": {
"id": "{{id}}"
}
}
]
}
}
},
"params": {
"id": "id to search"
}
}
}
调用此模板
GET test/_search/template
{
"id": "search-template-1",
"params": {
"id": "f52c2c62-e921-4410-847f-25ea0f3eeb40"
}
}
但遗憾的是,无法找到API参考,以便从JAVA调用此搜索模板(spring-data-elasticsearch)
2条答案
按热度按时间oo7oh9g91#
如val所述,这可以用于从java调用搜索模板查询
wvmv3b1j2#
目前还不可能。Spring Data Elasticsearch中有an issue可用于此操作。