elasticsearch - Elasticsearch Bool过滤器查询返回结果

标签 elasticsearch

我有一个映射索引:

[test] => Array
    (
        [mappings] => Array
            (
                [testype] => Array
                    (
                        [properties] => Array
                            (
                                [brand_id] => Array
                                    (
                                        [type] => integer
                                    )

                                [color] => Array
                                    (
                                        [type] => string
                                        [index] => not_analyzed
                                    )

                                [description] => Array
                                    (
                                        [type] => string
                                    )

                                [discount] => Array
                                    (
                                        [type] => float
                                    )

                                [newprice] => Array
                                    (
                                        [type] => float
                                    )

                                [oldprice] => Array
                                    (
                                        [type] => float
                                    )

                                [sex] => Array
                                    (
                                        [type] => string
                                        [index] => not_analyzed
                                    )

                                [store_id] => Array
                                    (
                                        [type] => integer
                                    )

                                [title] => Array
                                    (
                                        [type] => string
                                    )

                            )

                    )

            )

    )

并尝试使用此查询过滤数据:
Array
(
[index] => test
[type] => testype
[size] => 100
[body] => Array
    (
        [query] => Array
            (
                [filtered] => Array
                    (
                        [filter] => Array
                            (
                                [bool] => Array
                                    (
                                        [must] => Array
                                            (
                                                [term] => Array
                                                    (
                                                        [brand_id] => 53
                                                        [color] => red
                                                    )

                                            )

                                    )

                            )

                    )

            )

    )

)

期望得到类似SELECT ...的结果... brand_id = 53 AND color = red,但结果类似于brand_id = 53 OR color = red。我想念什么吗?

实际上,我希望有一个类似SELECT ...的过滤器... aaaaa ='a'AND bbbb ='b'AND cccc IN(1,2,6,9)和ddd IN(xxx,yyy)

最佳答案

您必须将这些术语放在不同的数组中。

免责声明:我猜这种语法是PHP的一种,我不熟悉,请原谅任何语法错误。

试试这个:

[must] => Array
    (
        [term] => Array
            (
                [brand_id] => 53
            )
        [term] => Array
            (
                [color] => red
            )
    )

您的最后一个查询应如下所示:
[must] => Array
    (
        [term] => Array
            (
               [aaaa] => 'a'
            )
        [term] => Array
            (
                [bbbb] => 'b'
            )
        [terms] => Array
            (
                [cccc] => Array(1, 2, 6, 9)
                [minimum_should_match] => 1
            )
        [terms] => Array
            (
                [dddd] => Array('xxx', 'yyy')
                [minimum_should_match] => 1
            )
    )

关于elasticsearch - Elasticsearch Bool过滤器查询返回结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25739489/

相关文章:

python - ElasticSearch 插入性能不佳

elasticsearch - 如何尽可能隔离 Elasticsearch 索引和搜索路径

elasticsearch - 格拉法纳 : Average Calculation + Dynamic Threshold

ElasticSearch 在匹配查询中考虑词序

elasticsearch - 筛选Logstash不适用于Grok Debugger

elasticsearch:无法使用 XContentBuilder 设置 geo_shape 值

java - 在嵌入式模式下启动elasticsearch时如何设置日志记录

php - 根映射定义具有不受支持的参数(mapper_parsing_exception)

elasticsearch - 使用日语文本的icu_collat​​ion的嵌套排序导致CircuitBreakingException

elasticsearch - 如何连续从elasticsearch删除旧的流利日志?