Как выполнить сопоставление с полем, содержащим текст, чередующийся с пробелами?

У меня есть индекс Elasticsearch v2.4.1, в котором я храню значения из фида JSON. Иногда я получаю значения, разделенные пробелами в некоторых полях, например:

"titulo" : "E l a ñ o q u e e l m e r c a d o d e j ó d e a s u s t a r"

Это происходит примерно в 15% случаев и предотвращает такие запросы, как:

localhost:9200/indice/_search?q=titulo:mercado

Чтобы соответствовать документу выше.

Я думаю, что проблема может быть решена с помощью какого-то CharFilter, я думал о фильтре N-gram, но он делает обратное. Я знаю, что это может быть сложно, поскольку ES должен на каком-то уровне делать вывод о языке (или, может быть, я мог бы указать его); справляться с неясностями и так далее...

Другие примеры того же:

"title" : "El g a l a r d ó n se e n t r e g a r á el p r ó x i m o día 2 4"

"title" : "G a m a a c t u a l i z a d a d e b o m b a s d e calor A q u a t e r m i c"

"title" : "K a s p e r s k y : m á s q u e a n t i v i r u s"

person Victor Duran    schedule 18.11.2016    source источник
comment
Могу я спросить, почему эти места вообще попали в ваш заголовок?   -  person Val    schedule 19.11.2016
comment
Они приходят из фида JSON. Это результат массового извлечения текста из PDF или процесса OCR.   -  person Victor Duran    schedule 20.11.2016
comment
Как отличить начало слова? Если вы хотите удалить все пробелы и использовать nGrams, посмотрите здесь: замена пробелов при анализе"> stackoverflow.com/questions/29873344/ - Однако причиной проблем является ваш jsonfeed, поэтому я бы попытался исправить причину.   -  person Dennis Ich    schedule 21.11.2016