背景關系化:我有這個查詢,我在兩個欄位中搜索一個術語,結果應該給我帶來類似于插入通配符的專案。但最終我會得到一個搜索詞串列......
當我只得到 1 個字串時,我使用此查詢進行搜索:
"query": {
"bool": {
"filter": [
{
"bool": {
"should": [
{
"wildcard": {
"shortName": "BAN*"
}
},
{
"wildcard": {
"name": "BAN*"
}
}
]
}
},
{
"range": {
"dhCot": {
"gte": "2022-04-11T00:00:00.000Z",
"lt": "2022-04-12T00:00:00.000Z"
}
}
}
]
}
},
"aggs": {
"articles_over_time": {
"date_histogram": {
"field": "dtBuy",
"interval": "1H",
"format": "yyyy-MM-dd:HH:mm:ssZ"
},
"aggs": {
"documents": {
"top_hits": {
"size": 100
}
}
}
}
}
}
但在某些時候,我會得到一個字串陣列,像這樣["BANANA","APPLE","ORANGE"]
那么,如何搜索與陣列中的專案完全匹配的專案?是否可以?
插入彈性的物件是這個:
{
"name": "BANANA",
"priceDay": 1,
"priceWeek": 3,
"variation": 2,
"dataBuy":"2022-04-11T11:01:00.585Z",
"shortName": "BAN"
}
uj5u.com熱心網友回復:
如果要搜索與陣列中的專案完全匹配的專案,可以使用terms 查詢
{
"query": {
"terms": {
"name": ["BANANA","APPLE","ORANGE"]
}
}
}
根據您的用例,您可以在現有查詢中的should子句或子句中包含術語查詢。must
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/464136.html
標籤:弹性搜索
