2017-06-16 76 views
0

的布爾或在目前我搜索我的數據完全匹配上一個任期內是這樣的:等效ElasticSearch

{ 
    "query": { 
    "bool": { 
     "must": [ 
     { 
      "term": { 
      "term_a": "xxxxx" 
      } 
     } 
     ] 
    } 
    } 
} 

不過,我希望能夠在多個方面尋找並獲得至少匹配的所有文檔一。所以在SQL中說term_a = 'xxxxx' or term_b = 'yyyyy'。我怎樣才能做到這一點?

回答

3

然後你可以使用一個boolshould陳述每個term

"bool": { 
    "should": [ 
    { 
     "term": { 
     "term_a": "xxxxx" 
     } 
    }, 
    { 
     "term": { 
     "term_b": "yyyyy" 
     } 
    } 
    ] 
} 

如果你想搜索多個方面的同場那麼你可以使用一個terms query

+0

謝謝,這是訣竅!如果你不介意,如果我有一些附加條款總是必須存在的話會怎麼樣?即'(term_a ='xxxxx'或term_b ='yyyyy')和term_c ='zzzzz'和term_d ='wwwwww''? – user3170702

+0

你把這些放在必須的語句。 –