【问题标题】:Adavancedquery in Elastic searchElasticsearch 中的高级查询
【发布时间】:2015-12-07 12:42:35
【问题描述】:

我正在为我当前的项目开发 Elastic Search。我正在使用基于关键字的功能。我的查询如下

$query = array("from" => 0,
            "size" => 20,
            "query" => array(
                "filtered" => array(
                    "query" => array("match" => array('_all' => trim(strtolower($keyword))))
        )));
        $result = $this->elasticsearch->advancedquery("services", json_encode($query));

如果用户输入他的关键字,它会出现 $keyword 并搜索“服务”类型。此功能工作正常。但我想以多种类型搜索该关键字。 IE。 在我的索引中。我有两种类型的“产品”和“服务”。 我需要在这两种类型中搜索我的关键字。

【问题讨论】:

    标签: elasticsearch


    【解决方案1】:

    使用多重匹配

     {"query" : {"multi_match" : {"query": $keyword,"fields": [ "products", "services" ]}}}
    

    【讨论】:

    • 嗨@Alainlb,在上面的问题中我使用了“高级查询”。用于类型服务。是否有任何用于 multi_match 的替代查询(如高级查询)。
    • 对不起,我不知道,我不使用你的弹性搜索角度库。查询不起作用?
    • 是的,但是我的问题已经解决了。我已经单独使用了..仅使用“高级查询”,即 $this->elasticsearch->advancedquery("services", json_encode($query)); $this->elasticsearch->advancedquery("products", json_encode($query));最后我将总结果合并到一个数组中。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-09
    • 1970-01-01
    相关资源
    最近更新 更多