簡體   English   中英

match_phrase 查詢在一個查詢中運行多個

[英]match_phrase query running mutiple in one query

我正在嘗試使用我的彈性查詢來獲取與“ListExperiences.Title”匹配的一些詳細信息

{
   "size": 100,
   "query": {
       "match_phrase": {
                "ListExperiences.Title": "technical specialist"
            }
   },
   "_source":["skillstop"]
}

我能夠成功執行並獲得所需的結果。

{...
 "hits":[{
    ...
    "_source":{"skillstop": "government, active directory"
     } }       
 ]}

命中的長度 = 1,因為我只進行了查詢。 但是如果我想競選這樣五個頭銜,例如:“支持專家”、“技術專家”、“技術專家”、“客戶服務代表”,我必須運行elasticsearch 5次。

有什么辦法可以讓我一次跑完? (期望我得到命中長度 = 5)

我試過這樣

{
 "size": 100,
 "query": {
    "dis_max":{
        "queries":[
            {"match_phrase": {
                "ListExperiences.Title": "technical specialist"} },
            {"match_phrase": {
                "ListExperiences.Title": "technical expert"} }
        ]
    }
}
}

它只返回“技術專家”或最后一個。

這取決於。 如果你想啟動一個 or 查詢,你應該嘗試:

{
  "query" : {
    "bool" : {
      "should": [{
        "match_phrase": {
          "ListExperiences.Title": "technical specialist"
        }
      }, {
        "match_phrase": {
          "ListExperiences.Title": "technical expert"
        }
      }]
    }
  }
}

如果您只想使用一個 POST 請求進行多個查詢,您應該使用multi_search - doc here

GET <your_index_name>/_msearch
{"query" : {"match_phrase" : {"ListExperiences.Title": "technical specialist"}}}
{"query" : {"match_phrase" : {"ListExperiences.Title": "technical expert"}}}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM