PHP elasticsearch 部分匹配

标签 php mysql elasticsearch

我想用elasticsearch搜索并用php显示结果。我想像 mysql 中那样进行部分匹配,例如:

select * from table_name where title like '%abc%'

但是我的代码不起作用:

$params = [
    'index' => 'my_index',
    'type' => 'my_type',
    'body' => [
        'query' => [
            'match' => [
                'title' => '.*abc.*'
            ]
        ]
    ]
];

最佳答案

我使用“match”而不是“regex”

$params = [
    'index' => 'my_index',
    'type' => 'my_type',
    'body' => [
        'query' => [
            'regexp' => [
                'title' => '.*abc.*'
            ]
        ]
    ]
];

关于PHP elasticsearch 部分匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46592860/

相关文章:

elasticsearch - 如何更改kibana的用户界面

mysql - 命令不同步;你现在不能运行这个命令 SQL

php - 搜索多个类别的产品

elasticsearch - 如何使用 elasticsearch 5.2.1 配置 Spring Boot?

PHP 查询在表中搜索 Json 值

php - Google Client PHP API ERR_EMPTY_RESPONSE错误

php - 在下拉列表中显示预定义值

php - Magento 订单状态与状态

在 Visual Studio 2019 中生成实体数据模型时 MySQL 崩溃

php - Elasticsearch过滤器中至少一个嵌套值大于零