ElasticSearch неправилно индексира и прави заявки за знаци, които не са буквено-цифрови

Моят индекс ElasticSearch не индексира правилно и не прави заявки за знаци, които не са буквено-цифрови. По-конкретно точките и тиретата създават проблеми.

Ако индексирам документ с името „O.K. Corral“, той трябва да съответства на заявки за „OK Corral“. По същия начин, ако индексирам „Whiskey A Go-Go“, бих искал да съответства на „Whiskey A GoGo“ и „Whiskey A Go Go“.

В момента само заявки с правилните точки и тирета ще върнат тези документи.

Надявам се, че решението ще разреши и всички потенциални проблеми с други небуквено-цифрови знаци, като запетаи и апостроф.

Звучи като работа за филтри за токени ElasticSearch, но не успях да намеря такъв, който да прави това, което търся. Освен това бих искал да направя това в рамките на ElasticSearch -- не искам да пиша персонализирани манипулации на низове за нормализиране на данните, преди да стигнат до моя ES индекс.

Благодаря за вашата помощ!


person Clay Wardell    schedule 28.08.2012    source източник
comment
Разгледайте филтъра за разделител на думи, той трябва да прави поне някои от нещата, които ви трябват.   -  person javanna    schedule 29.08.2012
comment
@javanna Изглежда, че разделителят на думи прави каквото искам с тирета -- сега са само онези досадни точки. Благодаря!   -  person Clay Wardell    schedule 29.08.2012
comment
Страхотно, току-що добавих коментара си като отговор.   -  person javanna    schedule 29.08.2012


Отговори (1)


Може да искате да разгледате Разделител на думи Филтър за токени. Поне ще направи това, което искате с "Whiskey A GoGo" и "Whiskey A Go-Go,". Можете да проверите поведението му предварително, като използвате api за анализ .

person javanna    schedule 29.08.2012
comment
Както се оказа, филтърът за символи за разделител на думи също се справи с моя проблем с точките. Едно нещо, което трябваше да запомня, беше да премахна стандартния токенизатор -- ако това е налице, низовете вече ще бъдат токенизирани (неправилно в моя случай), преди да стигнат до филтъра. Но с помощта на токенизатора за бели интервали и правилно конфигуриран филтър за разделители на думи успях да накарам всичко да работи както трябва. Благодаря! - person Clay Wardell; 30.08.2012