2015-12-07 231 views
0

我正在爲當前項目進行彈性搜索。我正在使用基於關鍵字詞的功能。和我的查詢如下彈性搜索中的高級查詢

$query = array("from" => 0, 
      "size" => 20, 
      "query" => array(
       "filtered" => array(
        "query" => array("match" => array('_all' => trim(strtolower($keyword)))) 
     ))); 
     $result = $this->elasticsearch->advancedquery("services", json_encode($query)); 

如果用戶輸入他的關鍵字它來到$關鍵字和搜索「服務」類型。這個功能工作正常。但我想在多種類型中搜索該關鍵字。即 在我的索引中,我有兩種類型的「產品」和「服務」。 我需要在兩種類型中搜索我的關鍵字。

回答

0

使用multi_match

{"query" : {"multi_match" : {"query": $keyword,"fields": [ "products", "services" ]}}} 
+0

您好@Alainlb,在上述的問題,我使用的 「advancedquery」。用於類型服務。是否有任何替代查詢(如advancedquery)for multi_match。 –

+0

對不起,我不知道,我不使用你的elasticsearch角度圖書館。該查詢不起作用? – AlainIb

+0

是的,但我的問題解決了。我已單獨採用「高級查詢」,即只有 $ this-> elasticsearch-> advancedquery(「services」,json_encode($ query)); $ this-> elasticsearch-> advancedquery(「products」,json_encode($ query));最後我將總結果合併成一個數組。 –