0

次のように定義された検索にクエリを使用しました。

QueryBuilder queryBuilder = nestedQuery("bodyObject.drawElems",
            boolQuery()
                    .minimumNumberShouldMatch(1)
                    .should(matchQuery("bodyObject.drawElems.drawElemTitle", "problem engagement"))
                    .should(matchQuery("bodyObject.drawElems.drawElemTitle", "problem definition"))
                    .should(matchQuery("bodyObject.drawElems.drawElemTitle", "research"))
                    .should(matchQuery("bodyObject.drawElems.drawElemTitle", "problem resolution")));

minimumNumberShouldMatchの値が1の場合、例外の結果が得られました。しかし、私はそれを2つ以上に変更しました。ヒットはもうありませんが、実際には「問題の関与」と「問題の定義」などのshould節の少なくとも2つを満たすことができるドキュメントがあります。

誰か私の質問に答えてもらえますか? または、私のコードに何か問題がありますか? ありがとう!

4

1 に答える 1

1

私は同じ問題に遭遇しました。単一のネストされたクエリは (1 つの一致だけではなく) 複数の一致を処理できるはずだと思いますが、何らかの理由でそれが機能する唯一の方法は、一致させたい値ごとに個別のネストされたクエリがある場合です。この JSON クエリを、質問のように完全なオブジェクト クエリに変換できることを願っています。

{  
   "bool":{  
      "should":[  
         {  
            "nested":{  
               "path":"bodyObject.drawElems",
               "query":{  
                  "match":{  
                     "bodyObject.drawElems.drawElemTitle":"problem engagement"
                  }
               }
            }
         },
         {  
            "nested":{  
               "path":"bodyObject.drawElems",
               "query":{  
                  "match":{  
                     "bodyObject.drawElems.drawElemTitle":"problem definition"
                  }
               }
            }
         },
         {  
            "nested":{  
               "path":"bodyObject.drawElems",
               "query":{  
                  "match":{  
                     "bodyObject.drawElems.drawElemTitle":"research"
                  }
               }
            }
         },
         {  
            "nested":{  
               "path":"bodyObject.drawElems",
               "query":{  
                  "match":{  
                     "bodyObject.drawElems.drawElemTitle":"problem resolution"
                  }
               }
            }
         }
      ],
      "minimum_number_should_match":2
   }
}
于 2014-08-15T21:55:17.127 に答える