Как удалить один разделитель из токенайзераasticsearch? - PullRequest
1 голос
/ 20 января 2020

Я использую эластичный поиск 6,8 для поиска текста. И я понял, что токенизаторasticsearch разбивает текст на слова, используя перечисленные здесь разделители: http://unicode.org/reports/tr29/#Default_Word_Boundaries. Я использую match_phase для поиска в одном из полей в моем документе, и я хотел бы удалить один разделитель, используемый токенизатором.

Я провел поиск и нашел некоторые решения, например, используя keyword вместо text. Это решение будет иметь большое влияние на мою функцию поиска, потому что оно не поддерживает частичный запрос.

Другое решение - использовать запрос keyword, но использовать подстановочный знак для поддержки частичного запроса. Но это может повлиять на производительность запроса. Кроме того, мне все еще нравится использовать токенизатор для других разделителей.

Третий вариант - использовать tokenize_on_chars для определения всех символов, используемых для токенизации текста. Но это требует от меня перечисления всех других разделителей. Поэтому я ищу что-то вроде tokenize_except_chars.

Так есть ли для меня простой способ извлечь один символ из разделителей, которые использует токенизатор вasticsearch6.8?

1 Ответ

0 голосов
/ 20 января 2020

Я нашел упругие опоры protected_words, которые могут сделать эту работу. Более подробную информацию можно найти в https://www.elastic.co/guide/en/elasticsearch/reference/6.8/analysis-word-delimiter-tokenfilter.html

...