elasticsearch ElasticSearch-筛选器的可选参数?,elasticsearch,elasticsearch" /> elasticsearch ElasticSearch-筛选器的可选参数?,elasticsearch,elasticsearch" />

elasticsearch ElasticSearch-筛选器的可选参数?

elasticsearch ElasticSearch-筛选器的可选参数?,elasticsearch,elasticsearch,我想为过滤器做一个可选选择,因此如果我输入一个特定的术语,结果将按它过滤,否则匹配所有内容 这是我的试用代码: "filter" : { "bool" : { "should" : [ { "terms" : { "item.brand" : [ "{{brand}}"] }} , {"m

我想为
过滤器
做一个可选选择,因此如果我输入一个特定的术语,结果将按它过滤,否则匹配所有内容

这是我的试用代码:

 "filter" : { 
    "bool" : {
        "should" : [  
            { "terms" : { "item.brand" : [ "{{brand}}"] }} ,
            {"match_all":{}}
        ]
    }
但是,当我跑步时:

{
        "id": "bipbip002",
        "params": {
            "query_all": "Table"
            "brand":""
        }
}
我明白了:

{
    "error": {
        "root_cause": [
            {
                "type": "parsing_exception",
                "reason": "Unknown key for a START_OBJECT in [filter].",
                "line": 1,
                "col": 302
            }
        ],
        "type": "parsing_exception",
        "reason": "Unknown key for a START_OBJECT in [filter].",
        "line": 1,
        "col": 302
    },
    "status": 400
}
目前,正在开发版本7el

地图信息

          "item": {
                "properties": {
                    "brand": {
                        "type": "text",
                        "fields": {
                            "keyword": {
                                "type": "keyword",
                                "ignore_above": 256
                            }
                        }

"name": {
                            "properties": {
                                "en": {
                                    "type": "text",
                                    "fields": {
                                        "keyword": {
                                            "type": "keyword",
                                            "ignore_above": 256
                                        }
                                    }
背后的逻辑: 搜索项目名称,如果用户单击筛选按钮,向现有模板发送API,该模板的筛选参数是可选的

elasticsearch DSL中不直接支持条件查询(也称为if…else),则您需要在启动ES查询的应用服务器中执行此条件逻辑


有关更多信息,请参阅。

能否提供索引映射、示例和预期结果,以便我们为您提供可能解决问题的查询链接非常有用,但我不知道
{{line\u no}}
,@ChauLoi,在官方示例中,他们使用了int类型的
line\u no
字段,在这个字段上,他们正在进行
range\u查询
,因此
line\u no
只是示例中的字段index@ChauLoi请在同一个链接中浏览一下,您将获得完整的上下文。只需添加映射,希望您能提供一个示例me@ChauLoi如文档中所述,它不支持JSON格式:(,我不熟悉字符串语法,我可以尝试,但这将花费我很多时间,希望社区中其他熟悉的人能够提供您正在寻找的确切答案