使用java客户端进行 Elasticsearch 时,我只能使用一个正则表达式模式搜索。现在,我正在使用这种方式。
searchSourceBuilder.query(QueryBuilders.regexpQuery("name", "AB.*"));
但是我需要等效的 Elasticsearch
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);
关于elasticsearch - 在单个请求的同一列内进行 Elasticsearch 多个正则表达式搜索?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51168389/