Как я могу найти по JOIN полей в упругой - PullRequest
0 голосов
/ 18 июня 2019

Добрый день, у меня есть вопрос И мне нужен практический ответ в коде, пожалуйста.У меня есть две таблицы «Заказы и местоположения». Я хочу сделать запрос, например, «Нью-йоркский мяч», и хочу получать все запросы с мячом из таблицы заказов, местоположение которой составляет 23 (Нью-Йорк)

.this

$mapping = [
            'index' =>'elastic',
            'type'=>'order',
            'body'=>[
                'properties'=>[
                  'item_name' => [
                        'type' => 'text',
                        'analyzer' => "ngram_analyzer_with_filter",
                    ],
                    'order_description' => [
                        'type' => 'text',
                        'analyzer' => "ngram_analyzer_with_filter",
                    ],
                    'id' => [
                        'type' => 'text',
                        'analyzer' => "ngram_analyzer_with_filter",
                    ],
                    'notes' => [
                        'type' => 'text',
                        'analyzer' => "ngram_analyzer_with_filter",
                    ]
                ]
            ]


        ];

А также есть построитель запросов, подобный этому

 $items = $this->search->search([
                'index' => 'elastic',
                'type' => 'order',
                'body'=>[
                    'query'=>[
                        "multi_match"=>[
                            "fields"=>["item_name^5","location^4","order_description^3","notes^2"],
                            "query"=>$query
                        ]
                    ],
                    "highlight" => [
                        "pre_tags"  => "<b style='color:#da4f49'>",
                        "post_tags" => "</b>",
                        "fields" => [
                            "item_name" => new \stdClass(),
                            "order_description"=> new \stdClass(),
                            "id" => new \stdClass(),
                            "notes" => new \stdClass()

                        ]
                    ]]]


        );

Пожалуйста, предоставьте мне код, который может помочь мне, пожалуйста, пришлите мне код, потому что я не понимаю эту тему навсе это и мне очень сложно понять что-то кроме кода.Спасибо всем, когда я пытаюсь создать отображение индекса, как это

 "location_name"=> [
       "type"=> "join",
       "relations"=>
       ["location"=> "order" ]
 ]

Я получаю сообщение об ошибке Нет обработчика для типа [join] объявлен в поле [location_id] "}]

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...