[英]NativeSearchQueryBuilder with spring data elasticsearch
I need to make search with NativeSearchQueryBuilder it works but when I add filter it doesn't work 我需要使用NativeSearchQueryBuilder进行搜索,但它无法正常工作,但是添加过滤器后,
SearchQuery searchQuery = new NativeSearchQueryBuilder()
.withQuery(queryString(query))
.withFilter(FilterBuilders.termFilter("domain", "TEST"))
.build();
Page<Asset> asset =
elasticsearchTemplate.queryForPage(searchQuery,Asset.class);
return asset.getContent();
the entity Asset.java 实体Asset.java
@Entity
@Table(name = "ASSET")
@Document(indexName = "asset")
public class Asset implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
@NotNull
@Size(max = 50)
@Column(name = "name", length = 50, nullable = false)
private String name;
@Column(name = "domain")
private String domain;
//getter and setter
} }
test data 测试数据
id;name;domain
1;name1;TEST
2;name2;TEST
3;name3;DEMO
4;name4;DEMO
5;name5;TEST
Can anyone help me where is the error please? 任何人都可以帮助我,错误在哪里?
i think your query must be: 我认为您的查询必须是:
Json Version: Json版本:
{
"query": {
"filtered": {
"query": {
"query_string" : {
"default_field" : "content",
"query" : "this AND that OR thus"
}
},
"filter": {
"term": {
"domain": "TEST"
}
}
}
}
}
NativeSearchQueryBuilder
Version: NativeSearchQueryBuilder
版本:
QueryBuilder boolQueryBuilder = queryStringQuery(query);
FilterBuilder filterBuilder = termFilter("domain", "TEST");
SearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(QueryBuilders.filteredQuery(boolQueryBuilder, filterBuilder);
Page<Asset> asset = elasticsearchTemplate.queryForPage(searchQuery, Asset.class);
return asset.getContent();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.