php - Elasticsearch 的多项选择

标签 php elasticsearch

我想在其中搜索所有名称的elasticsearch进行查询,现在他们以这种方式执行,它将搜索一个名称,当我尝试放置多个名称时,它返回null,因为作为示例,我们假设名字为“ john ”,因此它将搜索john并找到它。

现在,如果我们选择其他名称“ johnsson ”,它将搜索 johnjohnsson ,该名称将始终返回空。

现在,我如何进行查询以搜索所有选定的名称。

                        'query_string' => array(
                        'default_field' => 'name',
                        'query' => $name[$i] // how to search multiple names
                    )
                );
            }


            $docs = $client->search($params);
}

最佳答案

如果您的$name变量是一个数组,则可以使用以下方法简单地尝试发送所有用空格分隔的值:

...
'query_string' => array(
    'default_field' => 'name',
    'query' => implode(" ", $name)
)
...

因此,如果$name是一个包含术语name1name2的数组,则查询字符串中的查询将为name1 name2

关于php - Elasticsearch 的多项选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32244906/

相关文章:

未找到 PHP 类,但包含在内

php - 我无法使用 mamp 访问 phpmyadmin

php - 返回对象中的 "undefined"字段

symfony - 使用ElasticaBundle和Translatable搜索多语言记录

curl - Elasticsearch:如何查询连接数?

javascript - 脚本小子用这个片段淹没了我的网站

php - 无法单击我的 wordpress 下拉菜单子(monad)菜单链接

php - PHP 中的 Elasticsearch 聚合

elasticsearch - 无法使通配符查询在Elasticsearch中的多个字段上工作

node.js - 使用elastic.js查询与过滤器匹配的元素数量?