问题构建使用或不是contition的弹性查询

时间:2017-09-03 06:22:51

标签: elasticsearch dsl

我正在尝试使用弹性构建查询,但它没有按预期工作。

SQL查询将是

EDT_SEARCH.addTextChangedListener(new TextWatcher() {

            @Override
            public void beforeTextChanged(CharSequence s, int start, int count, int after) {
            }

            @Override
            public void onTextChanged(CharSequence s, int start, int before, int count) {
                adapter.getFilter().filter(s);
            }

            @Override
            public void afterTextChanged(Editable s) {
            }
});

我想在phone1或phone2或phone3字段中记录值为1234且状态不等于z的记录

我在弹性下构建了以下查询,但即使status的值等于z,它也会返回记录。不知道我错过了什么。

select * from xyz 
where  (phone1 = "1234" or phone2 ="1234" or phone3 = "1234")
and status != "Z"

1 个答案:

答案 0 :(得分:0)

我能够找出问题,当我查询弹性时,我看到存储为Z状态的数据但是在查询Z中仍然返回记录,当我与小案例z比较时,它按预期工作。它似乎与默认分析器

有关