0

私はelastic.jsに次のような動的クエリを作成させました:

{
    "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を使用する場合)。Elastic/js に関する確かな情報源は大歓迎です

4

2 に答える 2

0
var r = ejs.Request({indices: index, types: type}),
    boolQ = ejs.BoolQuery();

boolQ.should(ejs.FieldQuery("DEAL_NAME","value")).defaultOperator("AND"));
boolQ.should(ejs.TermQuery( "DEAL_MOTTO","value"));                     
boolQ.should(ejs.FieldQuery("dealaddresses.CITY","value").defaultOperator("AND"));

r.query(boolQ);
于 2013-09-12T09:42:23.617 に答える