select * from [fre_userlianghua] where [shop_id]='195' and ([fangyuanshou]+[fangyuanzu]+[keyuanshou]+[keyuanzu]+[yaoshi]+[fangkan]+[dianhua1]+[daikan]+[dianhua2]+[shengming1]+[shengming2])<3
GET dss_quantization_index/_search
{
"from": 0,
"size": 50,
"query": {
"bool": {
"must": [
{
"term": {
"shopId": {
"value": "195"
}
}
}
],
"filter": {
"script": {
"script": {
"source": "doc['sellProperty'].value + doc['rentProperty'].value + doc['sellLook'].value + doc['rentLook'].value + doc['keys'].value + doc['roomLook'].value + doc['firstPhone'].value + doc['takeLook'].value + doc['secondPhone'].value + doc['firstDeclaration'].value + doc['secondDeclaration'].value < 3"
, "lang": "painless"
}
}
}
}
}
}
java api
executorService.execute(() -> {
NativeSearchQueryBuilder queryBuilder = new NativeSearchQueryBuilder();
BoolQueryBuilder boolQueryBuilder = new BoolQueryBuilder();
if ((StringUtils.isNotBlank(frmanage){
if (StringUtils.isNotBlank(shopid)) {
boolQueryBuilder.must(QueryBuilders.termQuery("shopId", shopid));
}
Map<String, Object> params = new HashMap<>();
String inline = "doc['sellProperty'].value + doc['rentProperty'].value + doc['sellLook'].value + doc['rentLook'].value + " +
"doc['keys'].value + doc['roomLook'].value + doc['firstPhone'].value + doc['takeLook'].value +" +
" doc['secondPhone'].value + doc['firstDeclaration'].value + doc['secondDeclaration'].value < 3";
Script script = new Script(ScriptType.INLINE, "painless", inline, params);
ScriptQueryBuilder scriptQueryBuilder = new ScriptQueryBuilder(script);
boolQueryBuilder.filter(scriptQueryBuilder);
}
/* boolQueryBuilder.filter(new BoolQueryBuilder()
.must(QueryBuilders.existsQuery("sellProperty"))
.must(QueryBuilders.existsQuery("rentProperty"))
.must(QueryBuilders.existsQuery("rentProperty"))
.must(QueryBuilders.existsQuery("sellLook"))
.must(QueryBuilders.existsQuery("rentLook"))
.must(QueryBuilders.existsQuery("keys"))
.must(QueryBuilders.existsQuery("roomLook"))
.must(QueryBuilders.existsQuery("firstPhone"))
.must(QueryBuilders.existsQuery("takeLook"))
.must(QueryBuilders.existsQuery("secondPhone"))
.must(QueryBuilders.existsQuery("firstDeclaration"))
.must(QueryBuilders.existsQuery("secondDeclaration")));*/
NativeSearchQuery searchQuery = queryBuilder
.withQuery(boolQueryBuilder)
.withSourceFilter(new FetchSourceFilter(new String[]{"id"}, null))
.build();
AggregatedPage<QuantizationEntity> quantizationEntities = elasticsearchTemplate.queryForPage(searchQuery, QuantizationEntity.class);
long totalElements = quantizationEntities.getTotalElements();
result.put("lhsz", totalElements);
countDownLatch.countDown();
});