Контролирайте реда на филтрите за токени в ElasticSearch

Опитвате се да контролирате реда, в който филтрите за токени се прилагат в ElasticSearch.

Знам от документите, че първо се прилага токенизаторът, след това филтрите за токени, но те не споменават как се определя редът на филтрите за токени.

Ето YAML фрагмент от моя скрипт за настройка на анализ:

       KeywordNameIndexAnalyzer :
           type : custom
           tokenizer : whitespace
           filter : [my_word_concatenator, keyword_ngram]

Бих си помислил, че my_word_concatenator ще се приложи преди keyword_ngram, но изглежда, че не е така. Някой знае ли как (или дали) редът на тези филтри може да се контролира?

Благодаря много!


person Clay Wardell    schedule 27.09.2012    source източник
comment
Вашите очаквания са правилни. Филтрите в персонализиран анализатор се прилагат в реда, определен от филтърния масив. Бихте ли дали пример, когато това не изглежда така?   -  person imotov    schedule 28.09.2012
comment
Прав си - причината, поради която поръчката изглеждаше неправилна, беше, че използвах безсмислена комбинация от токенизатор и филтри за токени. Ако сте любопитни, my_word_concatenator премахва празното пространство, но тъй като използвах токенизатора за празно пространство, нямаше празно пространство в токените, които стигнаха до филтрите. Така че 1 изобщо не се случваше, за разлика от случващото се след 2.   -  person Clay Wardell    schedule 28.09.2012
comment
Това е по-добре документирано в персонализирани анализатори раздел. така че редът има значение във вашия случай   -  person Hasan Rahal    schedule 05.07.2016


Отговори (1)


Анализаторът е направен от токенизатор, който разделя вашия текст на токени. След това филтрите за токени се появяват в картината в реда, в който сте ги конфигурирали, тъй като предоставяте масив. Ако имате съмнения, предлагам ви да разгледате анализирайте api, чрез който всъщност можете да тествате как работи анализаторът, без да индексирате никакъв текст.

person javanna    schedule 28.09.2012