2017-05-09 10 views
0

以下は弾性検索クエリです。私は範囲の両方を使用する必要があるとquery.Howに欠けている私は、私は上記のクエリに範囲を追加する必要が下記の問合せ弾性検索クエリの範囲の使用

 { 
    "query": { 
    "bool": { 
     "must": [ 
     { 
      "constant_score": { 
      "filter": { 
       "missing": { 
       "field": "url" 
       } 
      } 
      } 
     } 
     ], 
     "should": [] 
    } 
    }, 
    "_source": [ 
    "id", 
    "com_name", 
    "website", 
    "_foundation._rating" 
    ] 
} 

を変更することができます。親切に私はurlフィールドが欠落しなければならないと_foundation._ratingフィールドは(包括的)の間と1と4でなければならない。すなわち、あなたが必要とするクエリは、次のようであると思われる上記のクエリに

"range": { 
     "_foundation._rating": { 
     "gte": 1, 
     "lte": 4 
     } 
+0

は、私は私の質問@valを編集しました。私は基本的な質問をしています。上記のクエリに「範囲」を追加する必要があります。私はすべての可能性を試しましたが、何らかのエラーが発生しました。 – NiviSRa

+0

私は以下の答えを提供しました。 – Val

+0

ありがとう@Val。私はそれを試みるでしょう。 – NiviSRa

答えて

0

をセクションの下に追加助けます:

{ 
    "query": { 
    "bool": { 
     "must": [ 
     { 
      "missing": { 
      "field": "url" 
      } 
     }, 
     { 
      "range": { 
      "_foundation._rating": { 
       "gte": 1, 
       "lte": 4 
      } 
      } 
     } 
     ] 
    } 
    }, 
    "_source": [ 
    "id", 
    "com_name", 
    "url", 
    "_foundation._rating" 
    ] 
} 
+0

ありがとうございます@Val。これは動作します – NiviSRa

+0

それは働いてうれしい嬉しい! – Val

+0

助けがあれば答えを受け入れるべきです – Val

0

弾性検索のバージョンに基づいて、5.xを使用している場合は、must_not句の中にexistを使用する必要があります。 https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-exists-query.html

は、以下の文字列で検索してください:

{ 
    "query": { 
     "range": { 
      "bool": { 
       "must": [ 
        { 
         "term": { 
          "_foundation._rating": { 
           "gte": 1, 
           "lte": 4 
          } 
         } 
        } 
       ], 
       "must_not": { 
        "exists": { 
         "field": "url" 
        } 
       } 
      } 
     } 
    } 
} 
+0

ありがとう@Yeshodhan Kulkarni – NiviSRa