#elasticsearch
#elasticsearch
Вопрос:
У меня есть этот запрос с использованием match
type, и он возвращает результаты.
POST /kibana_sample_data_ecommerce/_search
{
"query": {
"match": {
"customer_first_name": "Mary"
}
}
}
Но когда я использую regex
type, он не возвращает результата.
POST /kibana_sample_data_ecommerce/_search
{
"query": {
"regexp": {
"customer_first_name": "M[a-z]ry"
}
}
}
Комментарии:
1. Какой тип отображения
customer_first_name
?2. «customer_first_name»: { «тип»: «текст», «поля»: { «ключевое слово» : { «тип»: «ключевое слово», «ignore_above» : 256 } } },
Ответ №1:
Поскольку customer_first_name
анализируется, вам нужно сделать это следующим образом (см. Нижний регистр m
):
POST /kibana_sample_data_ecommerce/_search
{
"query": {
"regexp": {
"customer_first_name": "m[a-z]ry"
}
}
}
Или вы также можете использовать keyword
подполе для достижения желаемого:
POST /kibana_sample_data_ecommerce/_search
{
"query": {
"regexp": {
"customer_first_name.keyword": "M[a-z]ry"
}
}
}