2017-02-02 1 views
0

하나의 문자열에 2-3 개의 항목을 포함하는 하나의 필드가 있습니다. 필드 가정 것은 : 이제 아래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

당신이 두 가지로 문을 어기면 :

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

나는이 접근법을 시도했지만, OR, :( – pbajpai21