Hi,
I am using the java API to query for a field with elasticsearch 5.5
SearchResponse response = client.prepareSearch("index")
.setTypes("log")
.setSearchType(SearchType.DFS_QUERY_THEN_FETCH)
.setQuery(QueryBuilders.rangeQuery(time").gte(100000))
.setQuery(QueryBuilders.regexpQuery("path", "first*second"))
.setFrom(0).setSize(10).setExplain(true)
.get();
I have also tried wildcardQuery instead of regexQuery. The rangeQuery works fine on its own.
Now I know for sure that the path has value like "first,first,first,thirdsecond,"
Mapping for that field is as follows
> "path" : {
> "type" : "text",
> "fields" : {
> "keyword" : {
> "type" : "keyword",
> "ignore_above" : 256
> }
> }
> },
I can find results if I look for only one term like "first" or "second". My best guess is that the field is analyzed by standard analyzer and the value is tokenized. How can I prevent it ?
Also How can I add some return fields in the response like the SQL like select A, B, C ?
Thanks