Я сделал elastic.js построить динамический запрос, как это:Упругие запрос соответствовать любому из предоставленных условий в BoolQuery
{
"size": 15,
"query": {
"bool": {
"must": [
{ "term": { "tag": { "term": "rocket" } } },
{ "term": { "name": { "term": "space" } } }
],
"should": [
{ "wildcard": { "place": { "value": "Moo*" } } }
]
}
}
}
Elastic.js Код для этого (Translator):
ejs.Request()
.size(15)
.query(
ejs.BoolQuery()
.must(ejs.TermQuery('tag', 'rocket'))
.must(ejs.TermQuery('name', 'space'))
.should(ejs.WildcardQuery('place', 'Moo*'))
)
It отлично работает, я счастлив, и я бы хотел, чтобы это было так. Но Я понял, что мне нужно добавить параметр для выполнения этого запроса с условием OR
, а не AND
как сейчас.
Он должен найти документы, которые соответствуют любым из предоставленных условий.
И эта задача оставляет меня без каких-либо подсказок (даже о DSL, которая завершит эту задачу).
Я посмотрел OrFilter, но я понятия не имею, как использовать его правильно (особенно с эластичнымJS). Любой надежный источник информации об эластичных/js будет с благодарностью
Не можете ли вы просто поместить все предложения в секцию should? Это станет OR, тогда ... – javanna
Отлично (я не единственный). Это именно то, как я это сделал сейчас, - догадался он вчера. Интересно, действительно ли это правильный путь? –
Да, это так. Почему нет? ;) Я добавил свой комментарий в качестве нового ответа. – javanna