在单个请求的同一列中进行弹性搜索多个正则表达式搜索?
Elastic search multiple regex search within same column in single request?
使用 java 客户端进行弹性搜索,我只能使用一种正则表达式模式搜索。现在,我是这样使用的。
searchSourceBuilder.query(QueryBuilders.regexpQuery("name", "AB.*"));
但我需要
的弹性搜索
SELECT NAME FROM USERS WHERE NAME LIKE 'AB%' OR 'SID%'
我正在使用 RestHighLevelClient。有没有办法在同一列中进行多个正则表达式搜索?
提前致谢。
您需要在 bool/should
:
中添加两个正则表达式查询
QueryBuilder first = QueryBuilders.regexpQuery("name", "AB.*");
QueryBuilder second = QueryBuilders.regexpQuery("name", "SID.*");
QueryBuilder boolQuery = QueryBuilders.boolQuery()
.should(first)
.should(second);
searchSourceBuilder.query(boolQuery);
使用 java 客户端进行弹性搜索,我只能使用一种正则表达式模式搜索。现在,我是这样使用的。
searchSourceBuilder.query(QueryBuilders.regexpQuery("name", "AB.*"));
但我需要
的弹性搜索SELECT NAME FROM USERS WHERE NAME LIKE 'AB%' OR 'SID%'
我正在使用 RestHighLevelClient。有没有办法在同一列中进行多个正则表达式搜索?
提前致谢。
您需要在 bool/should
:
QueryBuilder first = QueryBuilders.regexpQuery("name", "AB.*");
QueryBuilder second = QueryBuilders.regexpQuery("name", "SID.*");
QueryBuilder boolQuery = QueryBuilders.boolQuery()
.should(first)
.should(second);
searchSourceBuilder.query(boolQuery);