繁体   English   中英

在elasticsearch中如何在csv字符串字段中进行过滤

[英]In elasticsearch how to filter in csv string field

我是elasticsearch的新手,我有产品索引,其中类别在一个字段中存储为csv字符串。 我正在使用php客户端,我当前的搜索代码看起来像

$params = [
            "index" => "products",
            "type" => "product",
            "body" => [
                "size" => "5",
                "query" => [
                    "function_score" => [
                        "query" => [
                            "bool" => [
                                "must" => [
                                    "query_string" => [
                                        "fields" => ["category", "sub_category", "website", "services_offered", "keyword", "locations", "info"],
                                          "query" => $keyword."*"
                                    ]
                                ],
                                "filter" => [
                                    "term"=> ["is_active"=>1]
                                ]
                            ]
                        ],
                        "functions" => [
                                        [
                                            "field_value_factor" => ["field" => "rating", "modifier" => "none", "factor" => 1]
                                        ],
                                        [
                                            "field_value_factor" => ["field" => "reviews","modifier" => "log1p","factor" => 2]
                                        ]
                                    ]
                    ]
                ]
            ]
        ];
        $results = $this->elasticclient->search($params);

我尝试修改filter数组

"filter" => [
                                    "term"=> ["is_active"=>1],
                                        "wildcard" => ["category"=>$category]
                                ]

但我收到malformed query, expected [END_OBJECT] but found [FIELD_NAME]错误。

另外在旁注中,在php客户端中,如何获取最终生成的查询以进行调试?

terms过滤器不支持通配符。 您可以使用regexp过滤器(Elasticsearch版本中的查询> = 2.0)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM