2016-04-03 10 views
0

2004年にそれを発表しました。弾性検索「と」複数の値を持つオペレータ

"I am using Razor built in 2004" 
"Razor 2004 is great" 

が、次の検索文字列の結果は、クエリが1つの検索入力に適しています

"I am using Razor built in 2005" 
"Razor is great" 

無効になりますが、私は変更する方法: したがって、たとえば、次の検索文字列の結果が有効になります「カミソリ」と「2004」の文字列に2015存在するか、または剃る「と」どちらかどこ

{ 
     "query": { 
     "match": { 
      "product": { 
      "query": "Razor 2004","Shave 2015" 
      "operator": "and" 
      } 
     } 
     } 
    } 

などの複数の値のためのクエリは、今私は、文字列を探しています。 私はブールクエリを試みたが「と」work.Myのブールクエリへの検索のように、このようになります得ることができませんでした:

{ 
      "query": { 
       "query": { 
        "bool": { 
         "should": [ 
          { 
           "match": { 
            "product": "Razor 2004" 
           } 
          }, 
          { 
           "match": { 
            "product": "Shave 2015" 
           } 
          } 
         ] 
        } 
       } 
      } 
     } 

「と」複数の文字列での検索と同様に提供する方法はありますIN値?

答えて

2

matchクエリのcombine演算子をANDにする必要があります。一致クエリのデフォルトはORです。

"query": { 
    "bool": { 
     "should": [ 
     { 
      "match": { 
      "product": { 
       "query": "Razor 2004", 
       "operator": "and" 
      } 
      } 
     }, 
     { 
      "match": { 
      "product": { 
       "query": "Shave 2015", 
       "operator": "and" 
      } 
      } 
     } 
     ] 
    } 
    } 
関連する問題