Search code examples
elasticsearchelasticsearch-java-api

Elastic search multiple regex search within same column in single request?


Using java client for elastic search, I can able to use only one regex pattern search. For now, I'm using like this.

searchSourceBuilder.query(QueryBuilders.regexpQuery("name", "AB.*"));

But I need elastic search equivalent of

SELECT NAME FROM USERS WHERE NAME LIKE 'AB%' OR 'SID%'

I am using RestHighLevelClient. Is there any way to do multiple regex search within same column?

Thanks in advance.


Solution

  • You need to add both regexp queries inside a 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);