elasticsearch php 多个名称

elasticsearch php multiple names

我有要搜索的 FNAME、LNAME 和地址。我要搜索

FName = jo
LName = ro
Address = 34

那应该给我所有 FName 和 LName 以 jo 和 ro (LIKE) 开头的记录 所以如果它是 mysql 它将是 FNmae Like jp% And LName Like ro% AND Address Like 34%

所以到目前为止我有这个

 $params = [
            'index' => $this->arrayES['index'],
            'type' =>  $this->arrayES['type'],
            'body' => [
                'query' => [
                    'match' =>  ["FName"=>"Jo"]
                ]
            ]
        ];

问题是它只给我 JO

当我尝试添加 LName 和地址时

'match' =>  ["FName"=>"Jo", "LName"=>"ro", "Address"=>"34"]

出错了。

需要一些帮助

谢谢

** 预期结果 **

FName             LName             Address
Jo                  Ro               34 W Ave
John                Rosa             3456 Havana Ave
Johnny              Ronnatte         341 House Rd

有一种方法可以指定与您的 SQL 查询非常相似的查询,使用 query_string query:

 $params = [
        'index' => $this->arrayES['index'],
        'type' =>  $this->arrayES['type'],
        'body' => [
            'query' => [
                'query_string' =>  [
                    'query' => 'FName:Jo* AND LName:ro* AND Address:34*'
                ]
            ]
        ]
    ];