Hello,
let's assume my index looks like the following:
"mappings" : {
"properties" : {
"id" : {
"type" : "text"
},
"mail" : {
"type" : "text"
},
"fullName" : {
"type" : "text"
},
"dateOfBirth" : {
"type" : "text"
}
}
}
Now, I would like to search in certain fields only, if the search string (from user input) matches a certain (regex) pattern, i.e.:
- A[0-9]{5}: search only in field "id"
- /@/: search only in field "mail"
- [a-zA-Z]+\s[a-zA-Z]+: search only in field "fullName"
- (0?[1-9]|[12][0-9]|3[01]).(0?[1-9]|[1][0-2]).[0-9]{4}: search only in field "dateOfBirth"
- if nothing matches: search in all fields
Of course, I could do that programmatically by pattern matching before sending the query to Elastic, but I'd like to know whether there's a built-in functionality of Elastic that I'm missing out here.
Any advice is appreciated!