使用 Laravel 进行多字段的 Elastic Search

Viv*_*ani 2 elasticsearch laravel

我在下面的教程的帮助下在 Laravel 中集成了弹性搜索。

https://appdividend.com/2018/06/30/laravel-elasticsearch-tutorial-example/

根据本教程,单个字段的搜索工作正常。IE

// Article table has column 'title','body' and 'tags'.

 Route::get('/search', function() {
      $articles = Article::searchByQuery(['match' => ['title' => 'Test']]);
      return $articles;
 });
Run Code Online (Sandbox Code Playgroud)

但我想搜索多个列值,如“标题”、“正文”等。

有人建议如何使用多列进行搜索吗?

小智 5

您可以使用多重匹配查询,上面是一些如何完成此操作的示例。

GET _search
{
    "query": {
        "bool": {
            "must": {
              "multi_match" : {
                "query": "stuff you want to seach", 
                "type":  "cross_fields",
                "fields": [ 
                   "title^10",
                   "body^9",
                   "tags^8"
                ]
              }
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)