您需要查看的是正在使用的分析仪。如果您未指定,Elasticsearch将使用标准分析器。在大多数使用纯文本输入的情况下,它非常有用,但不适用于您提到的用例。
标准分析器将执行的操作是将字符串中的单词拆分,然后将其转换为小写字母。
如果要匹配整个字符串“ Classe A”并将其与“ Classe B”区分开,则可以使用关键字分析器。这样会将整个字段保留为一个字符串。
创建映射:
PUT vehicles
{
"mappings": {
"vehicle": {
"properties": {
"model": {
"type": "string",
"analyzer": "keyword"
}
}
}
}
}
执行查询:
POST vehicles/_search
{
"query": {
"match": {
"model": "Classe A"
}
}
}
如果要使用query_string
查询,则可以将运算符设置为AND
POST vehicles/vehicle/_search
{
"query": {
"query_string": {
"query": "Classe B",
"default_operator": "AND"
}
}
}