2017-02-02 18 views
0

1つの文字列に2〜3の項目を含む1つの項目があります。今すぐ下記AND演算子は弾性検索スクリプトで結果を返しません

 "target" : "one two three" 

は私のスクリプトです:

 { 
      "script": { 
      "script": { 
       "inline": "doc['target'].value != null && (doc['target'].value.contains('one') || doc['target'].value.contains('two'))" 
      } 
      } 
     } 

私は今、私がターゲットフィールド、それらのレコードを取得したい場合は、上記のスクリプトで正しい結果を取得しています は、フィールドがあるとし"one"と "two"の両方の項目があるので、演算子をAND(& &)に変更するだけで、スクリプトの下に書きました。

 { 
      "script": { 
      "script": { 
       "inline": "doc['target'].value != null && (doc['target'].value.contains('one') && doc['target'].value.contains('two'))" 
      } 
      } 
     } 

しかし、今は結果が得られません。私はここで何が問題になっているのか分からない。助けてください。

+0

ない伸縮素材検索の専門家が、私はあなたが説明するように、これは動作する必要がありますね。しかし、おそらく最初の&&の後にかっこを残すことができます。 – user152468

+0

余分な括弧も削除してみましたが、期待される答えが得られませんでした。 – pbajpai21

答えて

0

何を2つにあなたの声明を破る場合:

{ 
    "script": { 
     "script": { 
      "inline": "doc['target'].value != null && (doc['target'].value.contains('one'); doc['target'].value != null && doc['target'].value.contains('two'))" 
     } 
    } 
} 
+0

私はこのアプローチを試しましたが、OR、 – pbajpai21

関連する問題