Пользовательский фильтр символов в анализаторе не работает

Я использую фильтр символов regexp в couchbase для своего анализатора. желаемый результат после

phuong 1 -> phuong_1
phuong  12 -> phuong_12

Фильтр символов конфигурации в веб-консоли Couchbase после

Regular expression : ([a-z])\s+(\\d)
Replacement: $1_
  • Результатом вышеуказанной конфигурации является термин [phuong,1, 12 ]
  • Желаемый результат [phuong_1, phuong_12]
  • Я выравнивал этот код много раз, но он все еще работает неправильно
  • Вы можете помочь мне с этой проблемой?

1 ответ

Решение

Полнотекстовый поиск Couchbase реализован в golang. Вот игровая иллюстрация того, как работает ваше регулярное выражение.

https://play.golang.org/p/Jray7DTYZam

Как видно на иллюстрации выше, $1x эквивалентно ${1x}, а не ${1}x. Итак, вашу замену необходимо обновить до${1}_.

При этом у нас есть ограничение, заключающееся в том, что переменные ($1, ${2} и т. Д.) В настоящий момент не поддерживаются. Я создал внутренний тикет, чтобы расширить поддержку этого.

Другие вопросы по тегам