Не ищет в словах с знаком '

Добрый день!
Вопрос есть, как правильно написать запрос, что бы находились правильно слова с знаками.
Например, в индексе есть поле name с строкой Lion’s Head
Я ищу вводя слово Lions, но ничего не возвращает. Пожалуйста, подскажите как правильно искать? Вот мой код:
Документ создается с параметрами:

        'body' => [
            'settings' => [
                'analysis' => [
                    'filter' => [
                        'ru_stop' => [
                            'type' => 'stop',
                            'stopwords' => '_russian_'
                        ],
                        'ru_stemmer' => [
                            'type' => 'stemmer',
                            'language' => 'russian'
                        ]
                    ],
                    'analyzer' => [
                        'default' => [
                            'tokenizer' => 'standard',
                            'filter' => ['lowercase', 'ru_stop', 'ru_stemmer']
                        ]
                    ]
                ]
            ],
        ]

Ищу так:

$paramSearch['body']['query']['match']['name'] = 'Lions';

Можно добавить два дополнительных стеммера - possessive_english и english. Первый будет откусывать 's, а второй s.

GET _analyze
{
  "tokenizer": "standard",
  "filter": [
    "lowercase",
    {
      "type": "stemmer",
      "language": "russian"
    },
    {
      "type": "stemmer",
      "language": "possessive_english"
    },
    {
      "type": "stemmer",
      "language": "english"
    }
  ],
  "text": "Пошли в Lion's Head или Lions"
}
1 Like

Спасибо Вам большое!

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.