Случай 1: event_type.keyword:PREC_AD_STARTED
В индексе dia-*
свойство event_type
имеет подполе с именем keyword
.Приведенный выше запрос относится к этому подполю, т.е. event_type.keyword
.Для совпадения в dai-*
документы возвращаются, тогда как это подполе отсутствует для поля event_type
в индексе ad-prior
и, следовательно, нет результатов.
Случай 2: event_type:PREC_AD_STARTED
event_type присутствует в обоих индексах.Несмотря на то, что в индексе dai-*
тип данных text
, и поскольку по умолчанию применяется стандартный анализатор, значение PREC_AD_STARTED
приведет к prec_ad_started
.Приведенный выше запрос применяет тот же анализатор к входной строке, которая также затем преобразуется в prec_ad_started
и, следовательно, соответствует документам.
В случае индекса ad-prior
тип данных event_type
равен keyword
и, следовательно, является входнымСтрока индексируется как есть.Даже при поиске происходит то же самое, и, следовательно, приведенный выше запрос также совпадает и в этом случае.
Поэтому этот запрос дает результат в случае обоих индексов.
Случай 3: event_type:'PREC_AD_STARTED'
Для индекса dai-*
, поскольку запрос находится в поле event_type
(не для event_type.keyword), который имеет тип text
(по умолчанию анализатор: стандартный), когда PREC_AD_STARTED
проиндексирован, значение, которое индексируется, равно prec_ad_started
благодаря стандартному анализатору .Приведенный выше запрос ищет 'PREC_AD_STARTED'
(с одинарными кавычками).Даже эта строка будет передана через стандартный анализатор, который также преобразуется в prec_ad_started
, и, следовательно, этот запрос совпадает.
В случае индекса ad-prior
, event_type
имеет тип keyword
, что означает индекс какбез каких-либо изменений.Поскольку мы запрашиваем поле event_type
, запрос не будет применять анализатор (поскольку тип данных ключевое слово ) и, следовательно, будет искать 'PREC_AD_STARTED'
(не PREC_AD_STARTED
) и, следовательно, совпадений не будет.