在弹性搜索中Bool查询或过滤查询

时间:2015-04-20 09:54:32

标签: elasticsearch

我有一个表达式/查询:(" text" started_with" hello" OR" text" started_with" hi")OR(& #34;选择"是" first_option" AND"正确"是"是")。你能告诉我在弹性搜索中正确使用bool和filter查询来解决这个表达式的方法吗?

1 个答案:

答案 0 :(得分:1)

您可以使用" prefix query"来实现给定的表达式/查询。以及boolean queryterm query。请尝试以下

{
    "bool": {
        "should": [
            {
                "prefix": {
                    "text": {
                        "value": "hello"
                    }
                }
            },
            {
                "prefix": {
                    "text": {
                        "value": "hi"
                    }
                }
            },
            {
                "bool": {
                    "must": [
                        {
                            "term": {
                                "select": [
                                    "first_option"
                                ]
                            }
                        },
                        {
                            "term": {
                                "correct": [
                                    "true"
                                ]
                            }
                        }
                    ]
                }
            }
        ]
    }
}