ElasticSearch: запрос по нескольким полям - PullRequest
0 голосов
/ 05 июня 2018

Я новичок в ElasticSearch и пытаюсь выполнить запрос к нескольким полям вложенного документа.Это на самом деле успешно, только когда есть точное совпадение.

return Record::search()
            ->multiMatch([
                'original_name',
                'some_id',
                'contributors.name',
                'customNames.custom_name',
            ], ' * '.$searchTerm.' * ', ['fuzziness' => 'AUTO'])
            ->size(500)->get()->hits();

Любые идеи?

Эквивалент SQL будет:

SELECT * FROM WHERE records LIKE '%'.$seachTerm.'%' (плюс некоторые дополнительные объединения)

1 Ответ

0 голосов
/ 10 марта 2019
 $query = [
            'multi_match' => [
                'query' => $searchTerm,
               'fields' => [
                    'original_name',
                    'some_id'
                ]
             ],
          ];

$records = Record::searchByQuery($query, '', '', $count, $offset, [
                'id' => ['order' => 'desc']
            ]);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...