6

いくつかの要因に基づいて、ユーザーに提案をしようとしています:

•提案は、同じ大学の学生でなければなりません •提案は、少なくとも1つの他のフィールドと一致する必要があります

私はそれを持っていると思っていましたが、問題は、このクエリが他のすべてに関係なく、同じ学校のすべての学生を返すことです:

PUT /user/.percolator/4
{
  "query": {
    "bool": {
    "must": [
        { "match": { "college":{
            "query" : "Oakland University",
            "type" : "phrase"
        }}}
    ],
      "should": [

            { "match": { "hashtag": "#chipotle" }},
            { "match": { "hashtag": "#running"}},
            { "match": { "college_course": "ART-160" }}

      ]
    }
  }
}

POST /user/stuff/_percolate/
{  
  "doc":{  

    "college":"Oakland University",
    "college_course": "WRT BIO MTH-400"


  }
}
4

1 に答える 1

9

これは、同じ bool クエリで should と must の動作が発生するためです。デフォルトでは、ブールに「should」句のみが含まれていない限り、一致する必要がある「should」句はありません。少なくとも 1 つに一致する必要があります。

問題を解決するには、ブールクエリ内に追加するだけです"minimum_should_match" : 1:)

于 2015-09-10T14:42:42.587 に答える