Прошу прошения, если вопрос банален, я новичок в работе с ElasticSearch.
Установил версию 7.1 и добавил словари hunspell
Создал индекс с таким анализатором:
['char_filter' => [
'ru_mapping' => [
'type' => 'mapping',
'mappings' => ['Ё=>Е', 'ё=>е']
]
],
'tokenizer' => [
'ru_nGram' => [
'type' => 'nGram',
'min_gram' => 4,
'max_gram' => 10
]
],
'filter' => [
'ru_stopwords' => [
'type' => 'stop',
'stopwords' => 'а,без,более,бы,был,была,были,было,быть,в,вам,вас,весь,во,вот,все,всего,всех,вы,где,да,даже,для,до,его,ее,если,есть,еще,же,за,здесь,и,из,или,им,их,к,как,ко,когда,кто,ли,либо,мне,может,мы,на,надо,наш,не,него,нее,нет,ни,них,но,ну,о,об,однако,он,она,они,оно,от,очень,по,под,при,с,со,так,также,такой,там,те,тем,то,того,тоже,той,только,том,ты,у,уже,хотя,чего,чей,чем,что,чтобы,чье,чья,эта,эти,это'
],
'en_stopwords' => [
'type' => 'stop',
'stopwords' => 'a,an,and,are,as,at,be,but,by,for,if,in,into,is,it,no,not,of,on,or,such,that,the,their,then,there,these,they,this,to,was,will,with'
],
'my_nGram' => [
'type' => 'nGram',
'min_gram' => 2,
'max_gram' => 8
],
'custom_word_delimiter' => [
'type' => 'word_delimiter',
'generate_word_parts' => true,
'generate_number_parts' => true,
'catenate_words' => true,
'catenate_numbers' => false,
'catenate_all' => true,
'split_on_case_change' => true,
'preserve_original' => true,
'split_on_numerics' => false
],
'ru_RU' => [
'type' => 'hunspell',
'locale' => 'ru_RU',
'dedup' => TRUE
]
],
'analyzer' => [
'ru_index' => [
'type' => 'custom',
'tokenizer' => 'standard',
'char_filter' => ['html_strip', 'ru_mapping'],
'filter' => ['lowercase', 'custom_word_delimiter', 'en_stopwords', 'ru_stopwords', 'ru_RU']
]
]];
сделал такую схему документа:
['rec__name' => [
'type' => 'text',
'analyzer' => 'ru_index',
],
'rec__text' => [
'type' => 'text',
'analyzer' => 'ru_index',
]
];
вношу данные:
'rec__name' => 'Привет ребята!',
'rec__text' => 'Мы хотим в это воскресенье двинуть на пляж, наверное с ночевкой. Давайте с нами! Есть отважные?) ',
пробовал проверять так:
POST forum.txt/_analyze
{
"text": "отважные",
"analyzer": "ru_index"
}
возвращает
{
"tokens" : [
{
"token" : "отважный",
"start_offset" : 0,
"end_offset" : 8,
"type" : "<ALPHANUM>",
"position" : 0
}
]
}
однако, запрос
GET _search
{
"query": {
"match": {
"rec__text" : {
"query" : "отважный"
}
}
}
}
В результате запрос ничего не возвращает.
Помогите пожалуйста разобраться.