Если количество букв невелико, почему не работает эластичный поиск? - PullRequest
2 голосов
/ 18 февраля 2020
$params = [
            'from' => $from,
            'size' => config('app.pagination'),
            'index' => $index,
            //'type' => $this->type,
            'body' => [
                'query' => [
                    'bool' => [
                        'filter' => [
                            'term' => $where
                        ],
                        'must' => [
                            'multi_match' => [
                                'query' => $match,
                                'fields'=>$fields,
                                'fuzziness' => "AUTO:1,5",
                            ]
                        ]
                    ],
                ]
            ]
        ];

Здравствуйте, у меня нет проблем с моим запросом выше.

Например, я ищу пиццу . Я снова пишу pizaz . Эти запросы возвращают мне правильные записи.

Но у меня проблема. Он ничего не возвращает, когда вы набираете piz .

Как я могу решить эту проблему? Я хочу, чтобы это работало, когда я пишу, что это пропало.

1 Ответ

0 голосов
/ 19 февраля 2020

Добавьте параметр Minimum_should_match к вашему запросу.

Использование Minim_should_match устанавливает порог (абсолютное число, процент или их комбинацию) для соответствующих предложений в логических запросах.

Как вы знаете из документов

Если в запросе bool есть хотя бы одно условие must и нет предложений must или filter, значение по умолчанию равно 1. В противном случае значение по умолчанию равно 0.

...