使用BoolQueryBuilder
BoolQueryBuilder queryBuilder = QueryBuilders.boolQuery();
queryBuilder.should(QueryBuilders.matchQuery("appNameText", keyword));
queryBuilder.should(QueryBuilders.matchQuery("appIntroText", keyword));
sourceBuilder.query(queryBuilder);
會報錯,因爲查詢語句會多出"type" : "boolean"
結果展示
{
"query" : {
"bool" : {
"should" : [ {
"match" : {
"appNameText" : {
"query" : "調查",
"type" : "boolean"
}
}
}, {
"match" : {
"appIntroText" : {
"query" : "調查",
"type" : "boolean"
}
}
} ]
}
}
}
解決方案,加上.type(null)把type去除
BoolQueryBuilder queryBuilder = QueryBuilders.boolQuery();
queryBuilder.should(QueryBuilders.matchQuery("appNameText", keyword).type(null));
queryBuilder.should(QueryBuilders.matchQuery("appIntroText", keyword).type(null));
sourceBuilder.query(queryBuilder);
結果展示
{
"query" : {
"bool" : {
"should" : [ {
"match" : {
"appNameText" : {
"query" : "調查"
}
}
}, {
"match" : {
"appIntroText" : {
"query" : "調查"
}
}
} ]
}
}
}