У меня есть одно поле, содержащее 2-3 элемента в одной строке. предположим, что поле является:И оператор не возвращает никаких результатов в поисковый скрипт
"target" : "one two three"
Теперь ниже мой сценарий:
{
"script": {
"script": {
"inline": "doc['target'].value != null && (doc['target'].value.contains('one') || doc['target'].value.contains('two'))"
}
}
}
Я получаю правильный результат с выше сценария Теперь, если я хочу, чтобы получить эти записи, в которых целевое поле имеет оба элемента - «один» и «два», поэтому я написал ниже сценарий, просто изменив оператор на AND (& &).
{
"script": {
"script": {
"inline": "doc['target'].value != null && (doc['target'].value.contains('one') && doc['target'].value.contains('two'))"
}
}
}
Но теперь, я не получаю результатов. Я не понимаю, в чем проблема. Пожалуйста помоги.
Не эксперт Поиск резинок, но я думаю, что это должно работать, как вы описываете. Но вы, вероятно, можете оставить круглые скобки после первого &&. – user152468
Я также попытался удалить дополнительную скобку, но не получил ожидаемого ответа. – pbajpai21