我製成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*'))
)
它工作很好,我很高興,我希望它是這樣的。 但是我意識到我需要添加一個選項來執行此查詢,條件是OR
,而不是像現在這樣執行AND
。
它應該找到匹配任何提供條件的文件。
而這個任務讓我沒有線索(即使是關於完成這個目的的DSL)。
我看過OrFilter,但我不知道如何正確使用它(尤其是使用elasticJS)。彈性/ js的任何固體信息源將不勝感激
難道你不能只把所有的條款放在應該部分?這將成爲一個或然後... – javanna 2013-04-12 09:05:41
優秀(我不是唯一的)。這正是我現在所做的 - 昨天猜到了。我想知道這是否真的是正確的路? – 2013-04-12 20:01:37
是的。爲什麼不? ;)我添加了我的評論作爲一個新的答案。 – javanna 2013-04-13 08:14:51