-2

これが奇妙な動作なのか、何か間違ったことをしているのかわからないので、これをチェックしてください -

{
 "query": {
     "bool" : {
        "should" : {
                    "match" : { "pty_forename" : "nathan" }
                   },
        "should" : {
                    "match" : { "pty_surname" : "smith" }
                   }
              }
         }
}

これをコピーしてJSONLintに貼り付け、何が起こるかを確認します。これを JSON.Stringify() で解析しようとすると、まったく同じことが起こります。実際の問題は、私が解析しようとしているもののすべてが正常に解析されない、つまり欠落していることです-

"should":{
          "match" : {"pty_forename": "nathan"}
}

私は何を間違っていますか、誰かが洞察を提供できますか?

ありがとう。

4

1 に答える 1

1

複数の "should" がある場合は、次のような配列にする必要があります。

{
 "query": {
     "bool" : {
        "should" : [{
                    "match" : { "pty_forename" : "nathan" }
                   },{
                    "match" : { "pty_surname" : "smith" }
                   }]
              }
         }
}

またはこのように:

{
 "query": {
     "bool" : 
     [{ 
    "should" : { "match" : { "pty_forename" : "nathan" }},
    "should" : { "match" : { "pty_surname" : "smith" }}
    }]
}
}

すべては、希望する実装に依存します。 W3 Schools の例。

于 2013-08-14T09:55:01.447 に答える