пытался сделать регулярное выражение поиска в elasticsearch, с помощью следующего запроса:Нераспознанный символ в elasticsearch
{
"query": {
"constant_score": {
"filter": {
"bool": {
"must": [
{
"regexp": {
"displayName" : "(^a\w+| a(\w+))"
}
}
]
}
}
}
}
}
Это регулярное выражение прекрасно работает в https://regex101.com/ но выше запрос дает:
nested: QueryParsingException[[bm_md_acct_9993342_v1] Failed to parse]; nested: JsonParseException[Unrecognized character escape 'w' (code 119)\n at [Source: UNKNOWN; line: 10, column: 37]]; }
Я попытался избегая его по-разному, но без успеха. Как правильно поместить escape-последовательность?
Пробовал:
{
"query": {
"constant_score": {
"filter": {
"bool": {
"must": [
{
"regexp": {
"displayName" : "(^J\\w+| J(\\w+))"
}
}
]
}
}
}
}
}
дает пустой результат, даже если запись DISPLAYNAME "Джейсон Кремер" существует.
Что вы пытаетесь найти? –
Если вы хотите совпадать только с записями, начинающимися с 'J', а затем иметь 1 + буквы с пробелами, используйте' 'J [a-zA-Z] +" ' –
Или, если вы хотите совместить имя или имя или последнее имя начинается с 'J', используйте' 'J [a-zA-Z] + [a-zA-Z] + | [a-zA-Z] + J [a-zA-Z] +" ' , –