Is it possible to search in elastic like "SQL LIKE" works ?? I have tried to search with wildcard but it is not working if there are spaces in word. Can I somehow adjust the wildcard usage to that case?
It's not recommended but if you want it do that against a keyword field data type or don't analyze the field.
i have tried this way
DELETE wildcardtest
PUT /wildcardtest
{
"mappings": {
"doc": {
"properties": {
"name": {
"type": "keyword"
}
}
}
}
}
PUT wildcardtest/doc/1
{
"name": "Armenian Dram"
}
PUT wildcardtest/doc/2
{
"name": "US Dollar"
}
GET wildcardtest/_search
{
"query": {
"wildcard": {
"name": "*ian dram*"
}
}
}
but i don't get any result
It's because your text is not analyzed.
This one works:
GET wildcardtest/_search
{
"query": {
"wildcard": {
"name": "*ian Dram*"
}
}
}
If you really want to do that, you need may be to lowercase the content by using a lowercase normalizer or change the type to text and use a simple analyzer.
if i change type to text and also use lowercase normalizer wildcard will not work with space ... okey if it's not recommended use wildcard with spaces how can i get "SQL like" effect with elastic
May be explain the use case so we can help to find a better approach?
By use case I mean: what type of documents, what are your users going to enter in the search bar, ...